现在我正在开发 tvOS 应用程序。该应用程序基于视频播放/暂停等媒体类型。我想,我什么时候展示用于播放视频的视频控制器。通常,我按下菜单按钮,视频控制器会关闭并重定向到上一个屏幕。虽然我的要求是,如果用户暂停视频并按我的要求的菜单按钮,则关闭视频控制器。但在这种情况下,我按菜单按钮两次以关闭视频控制器。
我正在使用此代码来解雇。
override func viewWillAppear(animated: Bool) {
let menuPressRecognizer = UITapGestureRecognizer()
menuPressRecognizer.addTarget(self, action: #selector(VideoPlayerViewController.menuButtonAction(_:)))
menuPressRecognizer.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.rawValue)]
self.playerController.view.addGestureRecognizer(menuPressRecognizer)
}
func menuButtonAction(ges:UITapGestureRecognizer) {
self.dismissView()
}
但它没有按要求工作。我的要求是菜单 只需按一次按钮即可关闭视图控制器。
不要向播放器添加点击手势,而是在 viewDidLoad 方法中添加到控制器视图。
private func addMenuGestureRecognizerWithType(pressType : UIPress.PressType, selector : Selector) {
let menuGesture = UITapGestureRecognizer(target: self, action: selector)
menuGesture.allowedPressTypes = [NSNumber(value: pressType.rawValue)]
view.addGestureRecognizer(menuGesture)
}
func menuButtonAction(ges:UITapGestureRecognizer) {
if isAdsPlaying {
return
}
if isLiveStream {
self.dismiss(animated: false, completion: nil)
}
if flowBottomConstraint?.constant == 0 && nextVideoDetailView.isHidden {
hideRelatedVideoOnMenuTap()
} else {
self.dismiss(animated: false, completion: nil)
}
}