Ich habe einen Slider erstellt (als Steuerelement des Videos, wie YouTube unten hat) und legen Sie die maximale (Dauer) und minimale Werte. Und dann SeekToTime
verwendet, um die currentTime zu ändern. Jetzt kann der Benutzer den Schieberegler bewegen, um den Wert zu ändern.Tippen Sie auf UISlider, um den Wert festzulegen
Was ich erreichen möchte ist, den Benutzer irgendwo auf dem Schieberegler tippen und die aktuelle Uhrzeit des Videos einstellen.
bekam ich einen Ansatz von this answer, und ich versuchte, es zu meinem Fall zu bewerben, aber konnte es nicht
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)
}
}
ich diese Arbeit sollte gedacht funktioniert, aber kein Glück. Dann habe ich versucht zu debuggen mit dem Versuch, "A" zu loggen, aber es geht nicht so offensichtlich nicht in die sliderTapped()
Funktion.
Was mache ich falsch? Oder gibt es einen besseren Weg, um das zu erreichen, was ich erreichen möchte?
vergaßen Sie den Delegaten des Gestenerkenner gesetzt? – whatever0010011