如何检测用户何时在 Swift 中完成移动 Range 滑块
Posted
技术标签:
【中文标题】如何检测用户何时在 Swift 中完成移动 Range 滑块【英文标题】:How to detect when user finished moving Range slider in Swift 【发布时间】:2016-12-29 16:27:24 【问题描述】:我在我的项目中使用Range slider。 How use it.
我想检测,当用户完成移动范围滑块。
我尝试使用函数SliderAction(sender: RangeSlider)
,但我得到了滑块中的每个移动点。我想我需要使用这个功能:func endTrackingWithTouch(touch: UITouch?, withEvent event: UIEvent?)
,但它不起作用。
我怎样才能做到?
【问题讨论】:
看到这个问题:***.com/questions/9390298/… 【参考方案1】:基于此示例viewcontroller,您应该检查值sender.selectedMax
更改的值是否应该等于您在情节提要中为该滑块视图设置的值
【讨论】:
【参考方案2】:要检测用户何时完成移动范围滑块,您可以向滑块添加一个 controlevent,您可以通过编程方式添加它:
mySlider.addTarget(self, action: "sliderDidEndSliding:", forControlEvents: .UIControlEventTouchUpInside)
那么你必须按照接收方法来做你的逻辑。
func sliderDidEndSliding(sender: UISlider)
【讨论】:
【参考方案3】:您需要覆盖 endTrackingWithTouch。它会在底层机制结束跟踪时调用,让您有机会做出响应。
请务必在您的 endTrackingWithTouch 版本中调用 this 的 super,以便父类可以发挥作用。
【讨论】:
【参考方案4】:对于 swift 3,我使用了这个:
mySlider.addTarget(self, action: #selector(self.sliderDidEndSliding), for: .touchUpInside)
func sliderDidEndSliding()
// process stuff
读取值通过以下方式完成:
@IBAction func mySlider(_ sender: Any)
【讨论】:
【参考方案5】:斯威夫特 4
slider.addTarget(self, action: #selector(sliderDidEndSliding), for: .touchUpInside)
并添加
@objc func sliderDidEndSliding(sender: UISlider)
【讨论】:
以上是关于如何检测用户何时在 Swift 中完成移动 Range 滑块的主要内容,如果未能解决你的问题,请参考以下文章