【发布时间】:2020-09-22 02:33:10
【问题描述】:
我正在主视图上安装一个 UIPanGestureRecognizer 如下:
panGesture = UIPanGestureRecognizer(target: self, action: #selector(previewPanned(_:))
panGesture?.minimumNumberOfTouches = 1
panGesture?.maximumNumberOfTouches = 1
view.addGestureRecognizer(panGesture!)
问题在于它会与主页指示器上的系统滑动手势同时识别以关闭应用程序。如何避免这种冲突?
编辑:当我使用以下代码调暗主页按钮指示器时出现问题 -
override var prefersHomeIndicatorAutoHidden: Bool {
return false
}
override var preferredScreenEdgesDeferringSystemGestures: UIRectEdge {
return [.bottom, .top]
}
上面的代码在几秒钟后使主页指示灯变暗。然后你需要滑动两次来关闭应用程序——第一次取消主页指示器,第二次关闭应用程序。第一次滑动两者兼而有之,调用我的平移手势识别器以及取消主页指示器。我不希望在第一次滑动时调用我的平移手势识别器。
【问题讨论】:
-
问题是一旦你离开安全区域就没什么可做的了,这就是为什么它被这样划分,这样你就不会遇到任何意外的行为。不过,您可以做的是检查何时使用 applicationWillResignActive() 轻扫主页按钮,并在离开前撤消您的平移操作。
-
主页按钮已经被我调暗了。如果它没有变暗,它总是优先并且没有问题。但是一旦它变暗,它需要一个边缘滑动才能首先取消它。然后再次边缘滑动以关闭应用程序。这是第一次边缘滑动以取消导致冲突的主页按钮。
标签: ios swift uiview uigesturerecognizer uipangesturerecognizer