LoginSignup
2
0

More than 5 years have passed since last update.

セルにジェスチャーを登録したらスクロールが反応しない問題

Last updated at Posted at 2018-03-08

これもあとでちゃんと書く

よくあるセルを横にスライドさせたら後ろから削除ボタンが出てくるやつをやろうとしてUIPanGestureRecognizer登録したらテーブルの縦スクロールが反応しなくなりました

なんか前も同じことで困ってどうやって解決したか忘れたのでメモ

class SwipeView:UIView{
  func setupGesture(){
    let gesture = UIPanGestureRecognizer(target: self, action: #selector(dragGesture(sender:)))
    gesture.delegate = self //デリゲートを忘れないように
    self.addGestureRecognizer(gesture)
  }
}

extension SwipeView:UIGestureRecognizerDelegate{
  //条件を満たすジェスチャーの動き以外はfalseにしてselectorにいかないようにする
  override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
    if let pan = gestureRecognizer as? UIPanGestureRecognizer {
      let translation = pan.translation(in: self)
      //横方向のスライドの時のみgestureを反応させる
      if fabs(translation.x) > fabs(translation.y) {
        return true
      }
      return false
    }
    return false
  }
}
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0