【发布时间】:2016-04-09 17:47:16
【问题描述】:
我创建了一个滑块(作为视频的控制操作,就像底部的 YouTube 一样)并设置了最大值(持续时间)和最小值。然后使用SeekToTime 更改当前时间。现在,用户可以滑动滑块的拇指来改变值
我想要实现的是让用户点击滑块上的任意位置并设置视频的当前时间。
我从this answer 那里得到了一个方法,我尝试将它应用到我的案例中,但无法成功
class ViewController: UIViewController, PlayerDelegate {
var slider: UISlider!
override func viewDidLoad() {
super.viewDidLoad()
// Setup the slider
}
func sliderTapped(gestureRecognizer: UIGestureRecognizer) {
// print("A")
let pointTapped: CGPoint = gestureRecognizer.locationInView(self.view)
let positionOfSlider: CGPoint = slider.frame.origin
let widthOfSlider: CGFloat = slider.frame.size.width
let newValue = ((pointTapped.x - positionOfSlider.x) * CGFloat(slider.maximumValue) / widthOfSlider)
slider.setValue(Float(newValue), animated: true)
}
}
我认为这应该可行,但没有运气。然后我尝试通过尝试将“A”打印到日志来进行调试,但显然它没有进入sliderTapped() 函数。
我做错了什么?还是有更好的方法来实现我想要实现的目标?
【问题讨论】:
-
你忘记设置手势识别器的代理了吗?
标签: ios swift uigesturerecognizer uislider uitapgesturerecognizer