ロケーションへのタッチを解決しようとすると、xロケーションとして常にゼロ(0)が返されます

StackOverflow https://stackoverflow.com/questions/1022187

質問

touchesBeganハンドラーを作成しているときに、この興味深いエラーに遭遇しました。

コード:

...
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self];
...

問題は、私が「タッチ」する場所に関係なく、point.xが常にゼロであることです。 yは1070000000〜1090000000の間で変動する巨大な数値です。

ハンドルはビュークラスにあり、locationInViewにselfの代わりにnilを渡すのと同じように機能します。また、すべてのタッチをループしてみましたが、xが常にゼロであるタッチのみがあります。

では、ここで何が間違っていますか?

役に立ちましたか?

解決

NSLog(@"%d、%d&quot ;, point.x、point.y)を使用している可能性があります;ポイント値を印刷するには?フロートのように聞こえます-> int変換エラー。 locationInView:を何度も使用しましたが、このような問題は一度もありませんでした。

[self frame]をチェックして、ゼロでないことを確認することもできます。

他のヒント

ベンは正しい。問題は、 point.x および point.y NSLog %d を使用して値を印刷しようとした場合code>は浮動小数点値です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top