检测物体上的手指
我想要一个图像,当用户触摸它时,它会摆动,一旦用户抬起手指,它就会停下来。检测物体上的手指
是否有手势可以用来检测手指何时下垂,而不仅仅是在初始触摸时,或者当用户在手指上移动时?
我已经尝试了LongPress手势,但是手指在视图上的整个时间都没有被调用。任何人都可以帮助我以最好的方式来激活这个。现在我正在使用touchesBegin,touchesMoved,touchesEnd来做它,但我想知道是否有更好的方法。
任何建议,非常感谢。
感谢
答案很简单 - 你可以使图像的UIButton,并开始触地摆动,并停止它TouchUpInside或TouchUpOutside
苹果Touches sample包括同时使用UIResponder和UIGestureRecognizer演示代码方法。
要么应该为你正在做的工作。
是的,我明白,但首先,我可以在UIGestures中使用touchesBegin等吗?我在想,我只能用一个或另一个......这是真的吗?其次,我希望我的动画在手指落下的整个过程中发生,最有可能是没有动作,所以我该如何在手指向下时采取行动? – LilMoke 2012-04-13 16:18:51
我还没有尝试过将UIGestureRecognizer与UIResponder混合使用,但是我不知道你不能使用两者的混合。这听起来像你试图触发你的动画基于一些持续的事件,而触摸正在举行?如果这是你的问题,那么我建议你在一个单独的线程上做你的动画,并发送消息来启动和停止动画。您的动画将与UIActivityIndicator的使用方式类似。我没有这方面的例子,但搜索“背景动画”或类似应该指向正确的方向。 – strings42 2012-04-13 16:32:14
显然,两者不会在默认情况下一起工作,请参阅http://mobworld.wordpress.com/2011/05/25/touches-cancelled-gesture/这是我的问题,如果我可以让他们一起工作我很好去。 – LilMoke 2012-04-13 17:09:49
听起来像你想子类 UIGestureRecognizer,我记得,它获得touchesBegan:...
和相关的方法。阅读UIGestureRecognizer参考中关于子类的注释。或者像SomaMan建议的那样使用UIButton。
编辑 根据该意见,我稍微误解了原来的问题,所以我编辑我的回答不同的解决方案,它希望更清楚一点(和答案的实际问题 - 而不是一个在我的头)。
长按手势是连续的(在没有点按手势的情况下)。这意味着,识别器回调将继续被调用,直到手势完成 - 直到“longpress”被释放才会发生。所以,以下应该做你想要的。注意:我认为您要在识别长按时“开始晃动”视图,然后在释放手指时“停止晃动”视图。我只是假装你有这个功能。适当替代。
- (void)handleLongPress:(UILongPressGestureRecognizer*)gestureRecognizer
{
if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
StartShakingView(gestureRecognizer.view);
} else if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
StopShakingView(gestureRecognizer.view);
}
}
触摸下也许? – 2012-04-13 16:43:42