我有一个在使用 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/