我想要的是一个图像,当用户触摸它时,它会摆动,一旦用户抬起手指,它就会停止。
是否有手势可用于检测手指何时宕机,而不仅仅是初次触摸,或者当用户移动手指时?
我尝试过LongPress手势,但是手指在视图上的整个时间都没有调用。任何人都可以用最好的方式来帮助我。现在我正在使用touchesBegin,touchesMoved,touchesEnd这样做,但我想知道是否有更好的方法。
非常感谢任何建议。
由于
答案 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。