swift - 滑动手势会中断 iOS 13 中的 UISlider 控件,但不会中断以前的 iOS 版本

标签 swift uislider ios13 uiswipegesturerecognizer

注意:这是iOS 13 beta,也可以申请明天正式发布。

更新 2:我将其替换为更大的拇指图像,但问题仍然存在。

更新:如果我非常精确地触摸 slider 上的拇指,它看起来仍然可以连续控制。但是为什么会这样,我怎样才能让它像以前一样控制呢?

我的 View 中添加了一个滑动手势识别器:

    let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
    swipeRight.direction = UISwipeGestureRecognizer.Direction.right
    self.view.addGestureRecognizer(swipeRight)

稍后,我将 UISlider 添加到同一 View :

        let slider = UISlider()
        let sliderLength:CGFloat = 175
        slider.frame = CGRect(x:0,
                              y:CGFloat(customHeight) - 35,
                              width:sliderLength,
                              height:35)


        slider.minimumValue = -1.2 
        slider.maximumValue = 0.6
        slider.setValue(Float(snowSliderValAdder), animated: false)

        slider.addTarget(self, action: #selector(self.updateSnowSliderValue(_:)), for: .valueChanged)

        view.addSubview(slider)

以前工作正常的东西,现在在 iOS 13 中表现不佳。如果我非常缓慢地移动 slider ,我可以移动 slider ,但如果我做任何类型的滑动 Action , slider 上的拇指停止移动并且手势被触发。我怎样才能阻止这种情况发生?

最佳答案

我遇到了同样的问题,并通过执行以下操作设法解决了它:

向您的 slider 添加一个不执行任何操作的 panGesture 并将其 cancelsTouchesInView 属性设置为 false。

let panGesture = UIPanGestureRecognizer(target: nil, action:nil)
                    panGesture.cancelsTouchesInView = false
                    slider.addGestureRecognizer(panGesture)

现在,您的 slider 应该像刀子一样滑动,不会中断滑动。

关于swift - 滑动手势会中断 iOS 13 中的 UISlider 控件,但不会中断以前的 iOS 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58001780/

相关文章:

regex - 解码正则表达式以了解它是否仅允许数字

ios - Swift - 从坐标获取地址

ios - Swift 将浮点值添加到 UISlider.value

swift - 在 swift 中覆盖系统 UI 样式时如何更改默认状态栏颜色

ios - 在没有导航栏的情况下更改状态栏背景颜色(iOS 13)

升级到 iOS 13.1 和 Xcode 11 后,Flutter 无法在 iPhone 上安装应用程序

ios - 使用 NavigationBar 返回

ios - UITableView 自定义单元格 - 如何将 cornerRadius 保持在编辑模式

ios - UISlider子类: CGContextAddPath: invalid context 0x0

ios - UISlider 在 Anmation 运行时获取 Value