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

Che*_*kie 0 uislider uiswipegesturerecognizer swift ios13

注意:这是iOS 13 beta,但也可能会在明天正式发布。

更新2:我将其替换为较大的缩略图,但仍然有问题。

更新:如果我非常精确地触摸滑块上的拇指,它似乎仍然可以连续控制。但是,为什么要更改此设置?如何使它像以前一样进行控制?

我向视图添加了滑动手势识别器:

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

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

        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)
Run Code Online (Sandbox Code Playgroud)

以前可以正常运行的东西现在在iOS 13中表现不佳。如果我将其缓慢移动,则可以移动滑块上的拇指,但是如果进行任何滑动动作,则滑块上的拇指会停止移动,并且手势为触发。我该如何阻止这种情况的发生?

Ahm*_*AJR 7

I had the same issue and managed to resolve it by doing the following:

Add a panGesture ,that does nothing, to your sliders and set their cancelsTouchesInView propery to false.

let panGesture = UIPanGestureRecognizer(target: nil, action:nil)
                    panGesture.cancelsTouchesInView = false
                    slider.addGestureRecognizer(panGesture)
Run Code Online (Sandbox Code Playgroud)

Now your sliders should slide like a knife cutting a butter with no swipe interruption.

  • 你是哪里毕业的?霍格沃茨? (8认同)