さて、私はここでは非常に奇妙な(私にとっては)問題にぶつかっています。私は自分のビューで150x150のボタンを持っており、私はそのボタンにUILongPressGestureRecognizer
を追加しました。ボタンを押したときにボタンが押されたポイントを取得する必要があるからです。これを行うコードは、次のようになります。タッチポイントを取得しようとすると、NaNが返される
-(CGPoint)detectedTouch:(UILongPressGestureRecognizer *)sender {
CGPoint touchPoint = [sender locationInView:button];
return touchPoint;
}
-(void)myAction {
CGPoint touchPoint = [self detectedTouch:myGestureRecognizer];
NSLog(@"touchPoint = %f, %f", touchPoint.x, touchPoint.y);
//do stuff
}
ボタンが通常の表示になっていれば、すべて正常に機能します。しかし、ボタンがscrollView上にあるとき、それはあなたがそれを約1秒間押したときにのみ機能します。あなたもすぐにそれを解放した場合、ログは私にこれを与える:
touchPoint = nan, nan
この問題を解決するための任意の助けをいただければ幸いです!
これはありがたいですが、どういうわけか私の問題はscrollViewに関連しています。タッチポイントを取得するポイントは、タッチした場所に応じて、ボタンをアニメーション化する方法が異なります。ちょうどテストするために、私はタッチ位置を確認する部分を削除し、押し下げたときにボタンをy軸の下に移動させ、もう押さなくなったら元の位置に戻しました。通常のビューでは、期待どおりに動作しますが、scrollViewでは遅延(上記のような)の後にのみ動作し、アニメーションは流動的ではありません。何か案は? – kopproduction