首页 > 解决方案 > 嵌入 iOS13 模态视图控制器时,自定义 UIControl 滑块不起作用

问题描述

当我将自定义 UIControl 嵌入到以新的 iOS13 自动样式模态呈现的 ViewController 中时,touchesCancelled每当平移手势移动超过几个点时都会调用它。

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

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

标签: modalviewcontrollerios13uicontrol

解决方案


如果是,您可以gestureRecognizerShouldBeginUIGestureRecognizerDelegate您的UIControl和返回falseUIPanGestureRecognizer

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

推荐阅读