代码之家  ›  专栏  ›  技术社区  ›  Micro

在同一个UIButton上同时识别UILongPressGestureRecognizer和UIPanGestureRecognizer

  •  0
  • Micro  · 技术社区  · 6 年前

    我想做一个 UIButton 当你长按它,它将开始录制视频,如果你垂直向上移动手指(同时长按),视频将放大。

    UILongPressGestureRecognizer UIPanGestureRecognizer

    长时间按下按钮时,我怎样才能做记录,同时又能让我摇手指,同时也能识别出来?我就是这样添加识别器的:

    let long = UILongPressGestureRecognizer(target: self, action: #selector(record(gesture:)))
    button.addGestureRecognizer(long)
    
    let pan = UIPanGestureRecognizer(target: self, action: #selector(zoom(pan:)))
    button.addGestureRecognizer(pan)
    
    0 回复  |  直到 6 年前
        1
  •  4
  •   Rahul Patel    6 年前

    你需要确认这两个手势的代表。 例如:

    let long = UILongPressGestureRecognizer(target: self, action: #selector(record(gesture:))) 
    long.delegate = self 
    button.addGestureRecognizer(long)
    
    let pan = UIPanGestureRecognizer(target: self, action: #selector(zoom(pan:))) 
    pan.delegate = self
    button.addGestureRecognizer(pan)
    

    还有一种委托方法可以同时识别多个手势。

    手势识别器(应同时使用:)

    在类中定义它并返回true。

    你会得到你想要的。

        2
  •  0
  •   Jesse Seidman    6 年前

    gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:) UILongPressGestureRecognizer UIPanGestureRecognizer 使用 UIGestureRecognizer.State 变化。这就是我过去所做的,清理东西,比有两个手势识别器更有逻辑意义