UIButton
显然,当您在同一个地方有一个手势识别器和一个被激活的相同手势时,iOS 6 会尝试自动处理这种情况。
当您想要单击按钮而不是激活手势识别器时,这种新的自动处理解决了该问题,但是当您希望手势识别器起作用时会产生一个新问题。
在 iOS 5 中,您可以实现:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
将动作转移到UIButton
发生冲突时。
这似乎在 iOS 6 中不起作用。此外,反转此方法的行为(因为现在UIButton
具有优先级而不是手势识别器)将不起作用。
完整方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([touch.view isKindOfClass:[UIControl class]]){
return NO;
}
return YES;
}