iOS 애플리케이션에서 스와이프 제스처를 처리하려면 Swift로 간단한 예제 앱을 만들어 직접 확인해 보는 것이 가장 효과적입니다. 구현 방식은 크게 두 가지로 나눌 수 있는데, 하나는 스토리보드(Storyboard)를 활용하는 방법이고, 다른 하나는 코드로 직접 작성하는 프로그래밍 방식입니다.
방법 1 – 스토리보드를 이용한 구현
먼저 오브젝트 라이브러리(Object Library)에서 Swipe Gesture Recognizer를 드래그하여, 스와이프 제스처를 추가하고 싶은 뷰 컨트롤러(View Controller) 위에 드롭합니다.
그다음 생성된 제스처를 클릭한 상태에서 Control 키를 누른 채 뷰 컨트롤러 클래스로 드래그하여 액션 연결을 만들어 줍니다.
이때 액션의 sender 타입은 반드시 UISwipeGestureRecognizer여야 하며, 완성된 액션은 아래와 같은 형태가 됩니다.
@IBAction func swipeMade(_ sender: UISwipeGestureRecognizer) { }iOS의 스와이프 제스처는 direction 프로퍼티를 통해 스와이프된 방향을 제공합니다. 이 direction은 열거형(enum) 타입으로, 다음과 같은 네 가지 값을 가질 수 있습니다.
- Right (오른쪽)
- Left (왼쪽)
- Down (아래)
- Up (위)
중요한 점은 하나의 스와이프 제스처 인식기는 한 번에 하나의 방향만 처리할 수 있다는 것입니다. 즉, 왼쪽, 오른쪽, 위, 아래 중 단 하나의 방향에만 대응합니다.
따라서 양방향 스와이프를 감지하려면 새로운 스와이프 제스처 인식기를 하나 더 추가해야 합니다. 어트리뷰트 인스펙터(Attribute Inspector)에서 해당 인식기의 direction 속성을 left(왼쪽)로 설정해 주세요.
또한 새로 추가한 인식기의 액션도 첫 번째 인식기와 동일한 액션 메서드에 연결하는 것을 잊지 마세요.
이렇게 하면 스토리보드 설정이 완료되고, 이후 direction 프로퍼티와 함께 아래에서 소개할 액션 메서드를 사용해 스와이프를 처리할 수 있습니다.
방법 2 – 코드로 직접 구현하기
스토리보드 없이 코드로 제스처 인식기를 생성하려면 viewDidLoad에 다음 코드를 추가하면 됩니다.
var leftRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(swipeMade(_:))) leftRecognizer.direction = .left var rightRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(swipeMade(_:))) rightRecognizer.direction = .right self.view.addGestureRecognizer(leftRecognizer) self.view.addGestureRecognizer(rightRecognizer)
위 코드에서는 왼쪽 방향 인식기와 오른쪽 방향 인식기를 각각 생성한 뒤, 뷰(View)에 추가하고 있습니다. 두 가지 방법 모두 실제 스와이프를 처리하는 액션 메서드인 swipeMade는 동일하게 작성하면 됩니다.
@IBAction func swipeMade(_ sender: UISwipeGestureRecognizer) {
if sender.direction == .left {
print("left swipe made")
}
if sender.direction == .right {
print("right swipe made")
}
}실행 결과 확인
앱을 기기에서 실행하면 현재 뷰가 비어 있기 때문에 화면상으로는 특별한 변화가 보이지 않습니다. 하지만 화면을 왼쪽 또는 오른쪽으로 스와이프하면 콘솔(Console)에 해당 방향의 스와이프가 감지되었다는 출력 결과가 나타나는 것을 확인할 수 있습니다.

정리
스토리보드 방식은 시각적으로 빠르게 제스처를 연결할 수 있다는 장점이 있고, 코드 방식은 여러 뷰나 조건에 따라 유연하게 제스처를 관리할 수 있다는 장점이 있습니다. 프로젝트 상황에 맞는 방식을 선택하되, 핵심은 방향별로 별도의 UISwipeGestureRecognizer 인스턴스를 생성하고, 공통 액션 메서드에서 direction 값으로 분기 처리한다는 점입니다.