【发布时间】:2019-11-16 23:51:39
【问题描述】:
我有一个自定义滚动视图,它在使用 UIPanGestureRecognizer 的 iOS 13 之前运行良好:
_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 但无法正常工作。有什么改变吗?
【问题讨论】:
-
什么是“自定义滚动视图”?可重现的代码在哪里?
-
运气好吗? iOS13 中有新的选择/撤消手势很可能与检查有关 developer.apple.com/videos/play/wwdc2019/224
-
对我来说,手势识别器翻译属性返回不正确的值。 (x:0,y:0)。在 iOS12 中运行良好。摆弄了我能找到的大多数东西:shouldRecognizeSimultaneouslyWith、最大/最小触摸次数等。平移事件触发良好,但平移值为 0,0。一旦触发事件,不知道如何从识别器本身获取正确的值。
-
我发现了我的问题。我正在设置 .center = someValue 同时对我的视图有限制。 iOS12 曾经允许这样做。 iOS13 不再这样做了,它出现了。我从我的视图及其子视图中删除了所有约束,并且视图现在随着平移手势识别器事件移动。现在我将开始重新添加它们,看看它们中的任何一个是否可以与手动框架设置一起使用......看起来他们用框架+约束来收紧事情。我现在可能必须手动设置所有内容,并且不使用任何约束,或者将所有内容转换为约束系统。
-
如果您解决了这个问题,请帮我看看我的问题吗?stackoverflow.com/questions/58609831/... 非常感谢
标签: ios cocoa-touch uigesturerecognizer uipangesturerecognizer