UIPanGestureRecognizer有时不能在iOS 7上工作

前端之家收集整理的这篇文章主要介绍了UIPanGestureRecognizer有时不能在iOS 7上工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 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.

猜你在找的iOS相关文章