Я создал слайдер (работающий как контроль над видео, как у YouTube внизу) и установите максимальные (длительность) и минимальные значения. А затем использовал SeekToTime
, чтобы изменить currentTime. Теперь пользователь может скользить большим пальцем ползунка, чтобы изменить значение
То, что я хочу достичь, это позволить пользователю нажимать в любом месте ползунка и устанавливать текущее время видео.
У меня есть подход от этого ответа, и я попытался применить его к моему делу, но не смог заставить его работать
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()
.
Что я делаю неправильно? Или есть лучший способ достичь того, чего я пытаюсь достичь?