【问题标题】:iOS 11 AVPlayerViewController Disable Pinch / Drag GestureiOS 11 AVPlayerViewController 禁用捏/拖动手势
【发布时间】:2017-09-28 08:20:54
【问题描述】:

我有一个 AVPlayerViewController 设置来播放视频,我在自定义视图控制器中嵌入了 VC 的视图。

但是,如果他们的用户尝试过,他们可以通过两根手指抓取来移动视频。如何禁用此功能?谢谢!

见下文:

【问题讨论】:

    标签: ios swift ios11 avplayerviewcontroller


    【解决方案1】:

    更安全的做法:

        let recognizers: [UIGestureRecognizer] = view.subviews.first?.gestureRecognizers ?? []
        for (idx, recognizer) in recognizers.enumerated() {
            if recognizer is UIPinchGestureRecognizer || recognizer is UIPanGestureRecognizer {
                positions.append(idx)
            }
        }
        for position in positions.reversed() {
            view.subviews.first?.gestureRecognizers?.remove(at: position)
        }
    

    如果您不使用positions.reversed(),应用可能会在删除第一项并且调整数组大小时崩溃。

    【讨论】:

      【解决方案2】:

      在开始播放视频之前尝试这样的操作

      var positions = [Int]()
      for (idx, recognizer) in (playerVC.view.subviews[0].gestureRecognizers?.enumerated())! {
          if recognizer is UIPinchGestureRecognizer || recognizer is UIPanGestureRecognizer {
              positions.append(idx)
          }
      }
      for position in positions {
          playerVC.view.subviews[0].gestureRecognizers?.remove(at: position)
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-02
        相关资源
        最近更新 更多