상황
- 탭바 기반의 앱에서 전체매뉴 탭 혹은 설정화면 탭의 경우 탭바를 숨김
- 이때 상단의 네비게이션 바의 왼쪽 아이템으로 탭 전환이 가능하지만 화면 왼쪽 가장자리 끝부분을 스와이프하여 첫번째 탭으로 이동하고자 함
- UIScreenDegePanGuestureRecognizer를 이용
내용
func setEdgePanGesture() {
let edgePanGesture = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(moveToFirstTab(_:)))
edgePanGesture.edges = UIRectEdge.left
view.addGestureRecognizer(edgePanGesture)
}
@objc func moveToFirstTab(_ recognizer: UIScreenEdgePanGestureRecognizer) {
if recognizer.state == .recognized {
self.tabBarController?.selectedIndex = 0
}
}
추가 확인 사항
- 화면전환이 애니메이션이 없이 이루어짐. 터치 종료시점(손가락을 뗀 시점)에서 애니메이션과 함께 탭이 전환되려면 EdgePanGesture가 아닌 PanGesture가 필요할 것 같음