UIGestureRecognizerStateBegan在iOS 6中
给予在此先感谢调用两次,我想和大家分享的UILongPressGestureRecognizer
的奇怪行为。UIGestureRecognizerStateBegan在iOS 6中
UIView *v = [UIView alloc] initWithFrame:CGRectMake(0,0,20,20)];
UILongPressGestureRecognizer *longpressGesture1 = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
[v addGestureRecognizer:longpressGesture1];
并且这里是委托来处理手势识别器。
-(IBAction)tapped:(UILongPressGestureRecognizer *) gesture
{
switch ([gesture state]) {
case UIGestureRecognizerStateBegan:
{
NSLog(@"Long Tap detacted.");
}
break;
case UIGestureRecognizerStateChanged:
{
NSLog(@"UIGestureRecognizerStateChanged");
}
break;
case UIGestureRecognizerStateEnded:
{
NSLog(@"Long Tap ended.");
}
break;
}
}
被正常使用按预期在IOS 4和5,但与视网膜显示IOS 6这段代码时,我们执行长抽头,UIGestureRecognizerStateBegan
被调用两次导致应用程序的单个长抽头崩溃。 非常欢迎任何帮助。
UILongPressGestureRecognizer是一个连续事件识别。你必须看看状态,看看这是事件的开始,中间还是结束,并采取相应的行动。
它调用两次,因为你按下,松开手指。
首先调用说明你有检测即UIGestureRecognizerStateBegan
第二个电话的长按则说明你有那个水龙头即结束UIGestureRecognizerStateBegan
有自来水
-
UIGestureRecognizerStateBegan
的三个态 UIGestureRecognizerStateChanged
UIGestureRecognizerStateEnded
如果你拖动手指,然后它会被称为多的时间,这将表明,在其状态的一些变化。
不,我没有按下并移开手指。它发生在同一个事件即压。这就是为什么它工作的iOS4和iOS5的但不是在iOS6的 – 2013-03-12 14:18:53
当你按下手指那么它表明一个事件正在发生,完成你长按自来水 – Rajneesh071 2013-03-12 14:28:15
其指示结束后我还没有达到精丝锥。我仍然持有很长的水龙头。 – 2013-03-13 05:40:33
请参阅http://stackoverflow.com/a/3320351/792677随意提供和接受与固定的代码的答案。 – 2013-03-12 14:09:10