編集
コメントに基づいて、元の質問を少し誤解したので、別の解決策への回答を編集します。これは、もう少し明確になることを願っています(そして、頭の中にあった質問ではなく、実際の質問に回答します)。
LongPress ジェスチャは連続的です (タップ ジェスチャはそうではありません)。つまり、レコグナイザ コールバックは、ジェスチャが完了するまで呼び出され続けます。これは、「長押し」が解除されるまで発生しません。したがって、以下はあなたが望むことをするはずです。注:長押しが認識されたときにビューを「揺れ始め」、指が離されたときにビューを「揺れ止め」たいと思います。そのための機能があるふりをしただけです。適当に代用。
- (void)handleLongPress:(UILongPressGestureRecognizer*)gestureRecognizer
{
if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
StartShakingView(gestureRecognizer.view);
} else if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
StopShakingView(gestureRecognizer.view);
}
}