我创建了一个Slider(作为视频控件操作,如YouTube在底部)并设置最大值(持续时间)和最小值。然后使用SeekToTime
更改当前时间。现在,用户可以滑动滑块的大拇指来更改数值点击UISlider设置值
我想要实现的是让用户点击滑块上的任意位置并设置视频的当前时间。
我得到了一个办法,从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()
函数。
我在做什么错?还是有更好的方法来实现我想要实现的目标?
你忘了设定手势识别的代表? – whatever0010011