我正在尝试提供一个图像,当用户触摸它时,它会摆动,并且一旦用户抬起手指,它就会停止。

我有什么手势可以用来检测手指何时按下,而不仅仅是在最初的触摸上,或者当用户在手指上移动时?

我尝试了LongPress手势,但是手指在视图上的整个时间都没有被调用。任何人都可以以最好的方式帮助我实现这一目标。现在我正在使用touchesBegin,touchesMoved,touchesEnd进行操作,但我想知道是否有更好的方法。

任何建议,不胜感激。

谢谢

最佳答案

编辑
基于这些评论,我对最初的问题有所误解,因此我将答案编辑为其他解决方案,希望可以使答案更加清楚(并回答实际问题,而不是我脑海中的那个问题)。

LongPress手势是连续的(不是轻击手势)。这意味着,识别器回调将继续被调用,直到完成手势为止-直到释放“ longpress”之后才发生。因此,以下应做您想要的。注意:我认为您要在识别长按时“开始摇动”视图,然后在松开手指时“停止摇动”视图。我只是假装您具有该功能。适当替换。

 - (void)handleLongPress:(UILongPressGestureRecognizer*)gestureRecognizer
{
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
        StartShakingView(gestureRecognizer.view);
    } else if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
        StopShakingView(gestureRecognizer.view);
    }
}

10-04 19:09