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