嵌入在 iOS13 模态视图控制器中时,自定义 UIControl 滑块不起作用

tha*_*son 4 uicontrol modalviewcontroller ios13

当我在以新的 iOS13 自动样式模态呈现的 ViewController 中嵌入自定义 UIControltouchesCancelled时,只要平移手势移动超过几个点就会调用。

本地人UIKit UISlider不会这样做。您可以毫无问题地在automatic样式模态 ViewController 中平移 UISlider 。

UIScrollView 具有touchesShouldCancel(in view: UIView)您可以强制它允许在指定视图中进行触摸的地方,但我在文档中找不到这种新样式的模态演示文稿的任何内容。

Mar*_*ato 6

您可以实现gestureRecognizerShouldBeginUIGestureRecognizerDelegateUIControl和返回false,如果它是的UIPanGestureRecognizer

//MARK: UIGestureRecognizerDelegate
extension RangeSlider: UIGestureRecognizerDelegate {
    public override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
        return !(gestureRecognizer is UIPanGestureRecognizer)
    }
}
Run Code Online (Sandbox Code Playgroud)