ロケーションへのタッチを解決しようとすると、xロケーションとして常にゼロ(0)が返されます
-
06-07-2019 - |
質問
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>は浮動小数点値です。
所属していません StackOverflow