2

ユーザーが触れると小刻みに揺れ、ユーザーが指を離すとすぐに止まるイメージを作ろうとしています。

最初のタッチだけでなく、ユーザーが指を動かしたときだけでなく、指が下がっていることを検出するために使用できるジェスチャはありますか?

LongPress ジェスチャを試しましたが、指がビュー上にある間ずっと呼び出されません。これを有効にする最善の方法を教えてください。今は touchesBegin、touchesMoved、touchesEnd を使ってやっていますが、もっといい方法はないかと思っていました。

どんな提案でも大歓迎です。

ありがとう

4

4 に答える 4

2

編集 コメントに基づいて、元の質問を少し誤解したので、別の解決策への回答を編集します。これは、もう少し明確になることを願っています(そして、頭の中にあった質問ではなく、実際の質問に回答します)。

LongPress ジェスチャは連続的です (タップ ジェスチャはそうではありません)。つまり、レコグナイザ コールバックは、ジェスチャが完了するまで呼び出され続けます。これは、「長押し」が解除されるまで発生しません。したがって、以下はあなたが望むことをするはずです。注:長押しが認識されたときにビューを「揺れ始め」、指が離されたときにビューを「揺れ止め」たいと思います。そのための機能があるふりをしただけです。適当に代用。

 - (void)handleLongPress:(UILongPressGestureRecognizer*)gestureRecognizer
{
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
        StartShakingView(gestureRecognizer.view);
    } else if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
        StopShakingView(gestureRecognizer.view);
    }
}
于 2012-04-14T23:12:58.007 に答える
1

Apple Touches サンプルには、UIResponder メソッドと UIGestureRecognizer メソッドの両方の使用方法を示すコードが含まれています。

どちらもあなたがやっていることでうまくいくはずです。

于 2012-04-13T16:11:44.437 に答える
0

UIGestureRecognizerをサブクラス化する必要があるように思えますが、これはtouchesBegan:...および 関連するメソッドを取得します。UIGestureRecognizer リファレンスのサブクラス化に関する注意事項をお読みください。または、SomaMan が提案するように UIButton を使用します。

于 2012-04-14T17:34:36.780 に答える
0

簡単な答え - 画像を UIButton にして、TouchDown でウィグルを開始し、TouchUpInside または TouchUpOutside で停止することができます

于 2012-04-13T16:06:25.910 に答える