繁体   English   中英

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

Swipe gesture interrupts UISlider control in iOS 13, but not previous iOS versions

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

注意:这是 iOS 13 beta,但也可以适用于明天的正式版本。

更新 2:我用更大的拇指图像替换了它,但我仍然遇到问题。

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

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

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

稍后,我在同一个视图中添加了一个 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)

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

5 个回复

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

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

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

现在,您的滑块应该像刀切黄油一样滑动,不会中断滑动。

在过去的一个小时里,我试图找到一些东西。 它看起来像滑动手势识别器对 UISlider 的干扰。

仅当您使用右/左方向时才会出现问题。 也许您应该在更新您的应用程序或更改您的 UI 以使用向上/向下滑动手势之前等待。

此时slider只要稍等片刻再移动手指即可正常工作。 希望苹果能尽快解决。

如果在我的 UISliders 上检测到触摸,我所做的是使用gestureRecognizer function 来停止任何手势。 确保添加 UIGestureRecognizerDelegate 并将 UISwipeGestureRecognizer 的委托设置为 self。

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {

   if touch.view == self.view.viewWithTag(viewTags.MySlider.rawValue) {
        return false
   }
   else if touch.view == self.view.viewWithTag(viewTags.AnotherSlider.rawValue) {
        return false
   }

   return true
}

SWIFT 5

可以使用手势识别器的委托方法解决问题,如下所示

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
    if touch.view?.isKind(of: UISlider.self) ?? false {
        return false
    } else {
        return true
    }
}

覆盖您创建的自定义视图的方法也可以解决问题。

override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
    return gestureRecognizer.view is Your_Custom_View
}
1 iOS7中的滑动手势控制问题

在我的应用程序中,我使用Swipe Gesture Control。我有一个表视图和一个视图控制器。 我的视图设计将如下: - 当滑动它会很好。但问题是,当快速滑动时,它会显示为重叠的条形按钮 解决方案是什么。我刚试过这段代码 我也在表视图中使用了隐藏按钮的代码它不能在我的p ...

3 IOS:识别滑动手势

在我的应用程序中,我有这个代码: 在这个我控制我的触摸是否在scrollView内部,但现在我想检查触摸是一个简单的触摸还是一个轻扫手势,有没有办法检测它? 谢谢 ...

4 iOS 上的离子滑动手势

我们在 iOS 上的手势有一个非常具体的问题。 我们有可以左右滑动的卡片,正如 Tinder 所知道的那样,但也可以向上滚动卡片以获取有关当前卡片的更多信息。 我们将 Ionic 框架与 AngularJS 一起使用,并使用了一个使用hammer.js 的组件,如https://medium.com ...

5 iOS:webview滑动手势

我有2个UIWebView控件。 使用这两个Web视图,我已经成功实现了滑动手势动画。 但是问题是,当我单击“下一个”或“上一个”按钮时(哦,是的,我也有“下一个”,“上一个”,“第一个”和“最后一个”按钮来阅读一本书),滑动即可正常工作。 但是在webview上,它的工作很奇怪。 ...

6 iOS5滑动手势

我目前正在编写ios5应用程序,并使用按钮调用两个函数(后退)和(下一个)。 我想用滑动手势来称呼他们。 那有可能吗? 谢谢 ...

7 拦截UIScrollView上的平移手势会中断滚动

我有一个垂直滚动的UIScrollView 。 我还想在其上处理水平平移,同时允许默认的垂直滚动行为。 我在滚动视图上放了一个透明的UIView ,并为它添加了一个平移手势识别器。 这样我可以很好地获得平底锅,但滚动视图不会接收任何手势。 我已经实现了以下UIPanGestureRe ...

8 iOS:在一个ViewController中滑动手势推送?

我想添加两个滑动手势。 我执行了代码,并且在运行,当我触摸屏幕时,视图控制器中的文本会更改。 但是,当用户想在下一个(或上一个)新闻上滑动时,我想添加一个“效果”,因为当前,我只是在更改文本。 我试图在情节提要中添加动作,以在视图滑动上添加推动。 它正在运行,但是有两个问题: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM