1

目的の機能:

ボタンを長押しした後、画面上でボタンをドラッグすることができます。

ジャンプバグ:

最初にボタンのドラッグを開始すると、ボタンの中央が、最初のクリックを登録したCGPointに「ジャンプ」して、長押しをトリガーします。たとえば、右上のボタンを長押しすると、カーソルを押したままドラッグを開始すると、ボタンがその「右上」の場所にジャンプします。

そのジャンプの後-すべてのドラッグは問題ありません。

コード:

- (void)longPress:(UILongPressGestureRecognizer*)receivedGesture
{
   if (receivedGesture.state == UIGestureRecognizerStateChanged)
   {
       CGPoint translation = [receivedGesture locationInView:self.scrollView];
       pannedBadge.center = translation;
   }
} 

究極の質問:

ここでの解決策は何ですか?最初のドラッグでボタンが元の中心から移動するようにするにはどうすればよいですか?

ありがとう!

4

2 に答える 2

1

ビューをドラッグ可能にするために私が通常行うことは、タッチの開始点を検出し、それ(タッチ)の移動の差を取得してから、ビューの中心を次のように設定することです。ビューの中心を次のように設定しません。絶対にタッチしますが、検出したタッチの動きを使って比較的設定しました。

于 2012-08-26T21:54:33.143 に答える
0

その理由は、変換ポイントが、ビューの中心ではなく、ビュー内のジェスチャの位置を要求しているためです。pannedBadge.centerをボタンの中心として開始すると、機能するはずです。お役に立てれば!

于 2012-08-26T21:50:35.017 に答える