问题描述
我使用的是 AORangeSlider,它是 UIControl
的子类,它覆盖了 beginTracking
、continueTracking
和 endTracking
方法。
当这个控件被添加到一个 viewController
中时,它在 iOS 13 中使用“卡片样式”呈现,它有非常奇怪的行为。滑动控件时,viewController
会尝试向下滑动,这会中断滑块行为,使其不可靠且无法正常工作。
如果我改为,我将 viewController
与 UIModalPresentationFullScreen
一起显示,控件可以正常工作。
有没有一种方法可以让 AORangeSlider/UIControl
与 iOS 13 卡片样式一起使用,并且它们的触摸事件不会发生冲突?
解决方法
不得不就此询问 Apple,他们推荐了以下解决方案,该解决方案有效:
if (@available(iOS 13.0,*)) {
for (UIGestureRecognizer *gestureRecognizer in self.navigationController.presentationController.presentedView.gestureRecognizers) {
gestureRecognizer.enabled = NO;
}
}