我创建了一个滑块(作为视频控制,就像YouTube底部的控制条),并设置了最大值(视频总时长)和最小值。然后使用SeekToTime
更改当前时间。现在,用户可以滑动滑块以更改值。
我想实现的是让用户在滑块上任何位置轻触即可设置视频的当前时间。
我从这个答案中得到了一种方法,并尝试将其应用到我的情况中,但无法使其正常工作。
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()
函数。
我做错了什么?或者有更好的方法来实现我想要的效果吗?