Создал слайдер (управляя видео, как у YouTube, внизу) и устанавливал максимальные (длительность) и минимальные значения. Затем используется SeekToTime
, чтобы изменить currentTime. Теперь пользователь может скользить большим пальцем ползунка, чтобы изменить значениеНажмите на 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