检测被保持在物体上的手指

时间:2012-04-13 16:01:54

标签: iphone objective-c xcode ipad

我想要的是一个图像,当用户触摸它时,它会摆动,一旦用户抬起手指,它就会停止。

是否有手势可用于检测手指何时宕机,而不仅仅是初次触摸,或者当用户移动手指时?

我尝试过LongPress手势,但是手指在视图上的整个时间都没有调用。任何人都可以用最好的方式来帮助我。现在我正在使用touchesBegin,touchesMoved,touchesEnd这样做,但我想知道是否有更好的方法。

非常感谢任何建议。

由于

4 个答案:

答案 0 :(得分:2)

修改 根据评论,我稍微误解了原来的问题,所以我编辑了我对不同解决方案的答案,希望更清楚一点(并回答实际问题 - 而不是我脑子里的问题。)

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

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

答案 1 :(得分:1)

Apple Touches sample包含演示同时使用UIResponder和UIGestureRecognizer方法的代码。

要么应该为你正在做的事情工作。

答案 2 :(得分:0)

简单回答 - 您可以将图像设为UIButton,然后在TouchDown上开始摆动,并在TouchUpInside或TouchUpOutside上停止

答案 3 :(得分:0)

听起来你想子类 UIGestureRecognizer,我记得,它获取了touchesBegan:...和相关的方法。阅读UIGestureRecognizer参考中有关子类化的说明。或者像SomaMan建议的那样使用UIButton。