我正在使用UISwipeGestureRecognizer。我有以下问题。当我触摸一个正方形时,它开始旋转。当我停止触摸它时,它停止旋转。我想用计时器,当它通过10秒的触摸时,方块自动停止旋转。我找到了一个解决方案,但我认为这不是很干净。 您是否有任何想法从该方法自动传递:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
方法:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
我正在使用此代码:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
if ([self state] == UIGestureRecognizerStatePossible) {
[self setState:UIGestureRecognizerStateBegan];
NSLog(@"Algo Began");
}
if ([[event touchesForGestureRecognizer:self] count] > 1)
{
[self setState:UIGestureRecognizerStateCancelled ];
NSLog(@"Algo Fail");
}
if (chowMuch==50) {
//[self setState:UIGestureRecognizerStateFailed ];
[self setState:UIGestureRecognizerStateRecognized ];
NSLog(@"Algo falla que pasara");
}
else {
[self setState:UIGestureRecognizerStateChanged];
NSLog(@"Algo changed");
}
}
该方法始终执行NSLog(@"Algo changed")
,这意味着当我触摸方块时状态为UIGestureRecognizerStateChanged,但当chowMuch
为50时,此结束。您是否有任何想法转到touchesEnded
答案 0 :(得分:-1)
尝试删除并重新添加接收(或响应)触摸的子视图。
由于有人对答案进行了低估:即使用户从不抬起手指,上方也会取消手势。我已经找了一段时间但找不到另一种解决方案。
当然,这不适合更复杂的任务。 另请参阅UIScrollView and cancel a zooming pinch gesture