简体   繁体   中英

Disable gesture recognizer in AVPlayerViewController

In AVPlayerViewController there is a feature for stopping the playback of a video and closing the AVPlayerViewController by swiping its view.

I want to disable this feature. I guess I need to disable a gesture recognizer!?

But I don't know how to do this for the player.

I recently stumbled upon a similar problem. You can access the gesture recognizers from the contentView of AVPlayerViewController .

If you wanted to keep only the tap gesture recognizer, you might want to use a function like this:

extension AVPlayerViewController {
    func disableGestureRecognition() {
        let contentView = view.value(forKey: "contentView") as? UIView
        contentView?.gestureRecognizers = contentView?.gestureRecognizers?.filter { $0 is UITapGestureRecognizer }
    }
}

Removing gestures didn't worked for me. Adding a new UIPanGestureRecognizer without any action worked.

extension AVPlayerViewController {
    func disableGesture() {
        let panGesture = UIPanGestureRecognizer(target: self, action: nil)
        self.view.addGestureRecognizer(panGesture)
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM