iOS 13 UIPanGestureRecognizer 的行为与 iOS 12 不同

标签 ios cocoa-touch uigesturerecognizer uipangesturerecognizer

我有一个在使用 UIPanGestureRecognizer 的 iOS 13 之前运行良好的自定义 ScrollView :

    _panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
    _panRecognizer.delegate = self;

- (void)handlePan:(UIGestureRecognizer *)gestureRecognizer
{
    UIPanGestureRecognizer* pgr = (UIPanGestureRecognizer*)gestureRecognizer;
    if (pgr.state == UIGestureRecognizerStateChanged) {
        // do something
    }
}

现在它不适用于 iOS 13。handlePan直到 3 个手指平移在一起,函数才被调用。在 iOS 12 中,仅移动 1 根手指时将调用此函数。

我试过设置min/maximumNumberOfTouches但不工作。有什么改变吗?

最佳答案

听起来您的手势现在正在与系统手势竞争。你检查了.gestureRecognizers View 的属性以查看是否发生了变化?

您可能必须实现 gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:)委托(delegate)方法,默认返回false。

关于iOS 13 UIPanGestureRecognizer 的行为与 iOS 12 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56918410/

相关文章:

ios - 公共(public) iCloud 数据

ios - 找不到包含 <angled> 的“libxml/xmlversion.h”文件;使用 "quotes"代替

ios - 如何使用 if 逻辑或三元运算符在 Swift 中设置枚举案例的 rawValue?

ios - CocoaLumberjack 日志应用程序崩溃

ios - 如何在 View 出现之前滚动到 iPhone 上 UITableView 的底部

iphone - UITableView 查找部分标题的位置?

ios - UICollectionView 中的缩放 ImageView 不一致

swift - 更改 UITableViewCell 高度,触摸内部

ios - 子类继承父类泛型的变量

cocoa-touch - iOS 9 UITextField textRectForBounds 问题