UIControl 跟踪和 iOS 13 演示样式卡无法协同工作

问题描述

我使用的是 AORangeSlider,它是 UIControl 的子类,它覆盖了 beginTrackingcontinueTrackingendTracking 方法

当这个控件被添加一个 viewController 中时,它在 iOS 13 中使用“卡片样式”呈现,它有非常奇怪的行为。滑动控件时,viewController 会尝试向下滑动,这会中断滑块行为,使其不可靠且无法正常工作。

enter image description here

如果我改为,我将 viewControllerUIModalPresentationFullScreen 一起显示,控件可以正常工作。

有没有一种方法可以让 AORangeSlider/UIControl 与 iOS 13 卡片样式一起使用,并且它们的触摸事件不会发生冲突?

解决方法

不得不就此询问 Apple,他们推荐了以下解决方案,该解决方案有效:

if (@available(iOS 13.0,*)) {
    
    for (UIGestureRecognizer *gestureRecognizer in self.navigationController.presentationController.presentedView.gestureRecognizers) {
        gestureRecognizer.enabled = NO;
    }
    
}