我在
IOS 7上的用户间歇性报告中表示,UIPanGestureRecognizer在一段时间内停止对某些视图的处理.他们应该能够向右/左滑动一个视图,但它只是打破了,因为一些未知的原因而无法工作.强制退出应用程序并重新启动它来解决问题.
iOS 6上没有发生这个问题.除了强制手势只识别水平平底锅的手势识别器之外,任何代码都不会禁用手势识别器:
- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer { if ([gestureRecognizer isMemberOfClass:[UIPanGestureRecognizer class]]) { CGPoint translation = [gestureRecognizer translationInView:[self superview]]; if (fabsf(translation.x) > fabsf(translation.y)) { if (translation.x > 0) return YES; } } return NO; }
UIPanGestureRecognizer(或者简单的UIGestureRecognizer)有什么变化可能导致这个问题吗?
解决方法
我想我终于解决了这个问题.显然,iOS 7处理子视图中的手势与iOS 6及更早版本不同.为了处理这个问题,苹果实施了一个新的代表:
(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBerequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
如果返回YES,那应该让你的手势识别器工作.我已经实现了它,到目前为止还没有任何问题(尽管诚然,这是一个罕见的bug,我永远无法可靠的复制,所以有可能它还没有重现).
有关更多信息,请参阅
https://stackoverflow.com/a/19892166/1593765.