[성서알리미] 2개 이상의 제스처를 추가하는 방법

이건준·2023년 10월 25일
0
  • 성서알리미 앱을 개발함에 있어서 도서화면에서 일어난 이슈이다
  • 위와 같이 키보드가 올라올 경우 view에 tapGesture를 추가하여 키보드가 내려가게 할 수 있도록 구현을 해왔다

  • 허나 스와이프 시에도 키보드를 내리면 좋겠다는 의견을 녹이기위해 아래와 같이 코드하였다

private let tapGesture = UITapGestureRecognizer(target: LibraryViewController.self, action: nil).then {
    $0.cancelsTouchesInView = false
  }
  
  private let panGesture = UIPanGestureRecognizer(target: LibraryViewController.self, action: nil).then {
    $0.cancelsTouchesInView = false
  }
  
[tapGesture, panGesture].forEach { view.addGestureRecognizer($0) }
  • 하지만 위와 같이 코드할 경우 tapGesture만 동작하고 panGesture는 동작하지않는 문제를 겪게 되었다

해결방법

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    // tap gesture과 swipe gesture 두 개를 다 인식시키기 위해 해당 delegate 추가
    return true
  }

panGesture에 대한 delegate를 등록하여 위와 같은 함수를 구현해줌으로써 2개의 UIGesture를 등록시켜줄 수 있었다

0개의 댓글