bmu*_*ler 9 uigesturerecognizer ios
我收到iOS 7用户的间歇性报告,说UIPanGestureRecognizer每隔一段时间停止处理某些视图.他们应该能够向右/向左滑动视图,但它只是因为一些未知原因而中断并且不起作用.强制退出应用程序并重新启动它可以解决问题.
这个问题在iOS 6上从未发生过.除了gestureRecognizerShouldBegin委托强制手势只能识别水平平底锅之外,我没有任何代码可以随时禁用手势识别器:
- (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;
}
Run Code Online (Sandbox Code Playgroud)
可能导致此问题的UIPanGestureRecognizer(或仅仅是平原UIGestureRecognizer)有什么变化吗?
bmu*_*ler 12
我想我终于解决了这个问题.显然,iOS 7处理子视图中的手势与iOS 6及更早版本中的手势不同.为了解决这个问题,Apple实施了一个新代表:
(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
Run Code Online (Sandbox Code Playgroud)
如果您返回YES,那么应该让您的手势识别器工作.我已经实现了它并且到目前为止没有任何问题(尽管这是一个罕见的错误,我永远无法可靠地重现,所以它可能它还没有复发).
有关更多信息,请参阅 /sf/answers/1392451651/.
| 归档时间: |
|
| 查看次数: |
6356 次 |
| 最近记录: |