본문 바로가기
Developer/iOS, Swift

[Swift] 화면 스와이프 시, 뒤로가기 기능 구현하기

by Doony 2019. 12. 10.

아이폰 유저라면 누구나 익숙한 것이 하나 있습니다. 손가락을 좌에서 우로 슬라이드시키면, 보고 있던 화면이 꺼지는 기능인데요. 해당 기능을 구현하는 코드는 다음과 같습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
    func swipeRecognizer() {
        let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture(_:)))
        swipeRight.direction = UISwipeGestureRecognizer.Direction.right
        self.view.addGestureRecognizer(swipeRight)
        
    }
    
    @objc func respondToSwipeGesture(_ gesture: UIGestureRecognizer){
        if let swipeGesture = gesture as? UISwipeGestureRecognizer {
            switch swipeGesture.direction{
            case UISwipeGestureRecognizer.Direction.right:
                // 스와이프 시, 원하는 기능 구현.
                self.dismiss(animated: true, completion: nil)
            default: break
            }
        }
    }
cs

 

사용 방법은 간단합니다. 위 코드를 삽입하고, swipeRecognizer를 viewDidLoad등에 선언해주기만 하면 됩니다.

 

아이폰 뷰에는 기본적으로 UISwipeGestureRecognizer라는 것이 있습니다. 즉, 어떤 유저의 스와이프 인풋이 들어왔을 때를 알아채고, 기능을 실행해주는 건데요. 

코드에서 보시다시피, direction을 우측으로 지정해준 뒤, GestureRecognizer을 통해 콜백함수를 만듭니다.

그리고 그 함수 내에 원하는 기능을 구현하는 방식입니다.

 

이와 유사하게, 상하좌우 방향에 대한 gesture 역시 인식해서 콜백함수를 구현할 수 있습니다. 상황에 따라 원하시는대로 사용하시면 됩니다.

댓글