[swift] 이미지 슬라이드쇼에서 이미지 스와이프 방향 선택하기

이미지 슬라이드쇼 앱을 개발하다 보면 사용자가 이미지를 스와이프 할 때 어느 방향으로 스와이프 했는지 알 필요가 있을 수 있습니다. 이번 글에서는 Swift 언어를 사용하여 이미지 슬라이드쇼에서 이미지 스와이프 방향을 인식하는 방법에 대해 알아보겠습니다.

1. UIPanGestureRecognizer 사용하기

UIPanGestureRecognizer를 이용하여 이미지 스와이프를 감지할 수 있습니다. 먼저, 이미지 슬라이드쇼 뷰 컨트롤러에서 UIPanGestureRecognizer를 추가하는 함수를 작성합니다.

func setupGestureRecognizer() {
    let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePan(_:)))
    imageView.addGestureRecognizer(panGestureRecognizer)
}

위 코드에서는 imageView에 UIPanGestureRecognizer를 추가하고, handlePan(:) 메서드를 액션으로 설정합니다. 이제 handlePan(:) 메서드를 구현해보겠습니다.

@objc func handlePan(_ gestureRecognizer: UIPanGestureRecognizer) {
    let translation = gestureRecognizer.translation(in: view)
    let velocity = gestureRecognizer.velocity(in: view)
    
    if gestureRecognizer.state == .ended {
        if abs(translation.x) > abs(translation.y) {
            if translation.x > 0 {
                // 오른쪽 스와이프
            } else {
                // 왼쪽 스와이프
            }
        } else {
            if translation.y > 0 {
                // 아래쪽 스와이프
            } else {
                // 위쪽 스와이프
            }
        }
    }
}

handlePan(_:) 메서드에서는 UIPanGestureRecognizer의 translation과 velocity를 사용하여 스와이프의 방향을 판단합니다. translation의 x 값과 y 값이 각각 0보다 크면 오른쪽, 왼쪽, 아래쪽, 위쪽 스와이프인지 판단할 수 있습니다.

2. 방향에 따라 동작 추가하기

스와이프의 방향을 판단한 후에는 해당 방향에 따른 동작을 추가할 수 있습니다. 아래는 각 방향에 따른 동작 예시입니다.

@objc func handlePan(_ gestureRecognizer: UIPanGestureRecognizer) {
    // 이전 코드 생략
    
    if gestureRecognizer.state == .ended {
        if abs(translation.x) > abs(translation.y) {
            if translation.x > 0 {
                // 오른쪽 스와이프
                // 오른쪽으로 넘기기
            } else {
                // 왼쪽 스와이프
                // 왼쪽으로 넘기기
            }
        } else {
            if translation.y > 0 {
                // 아래쪽 스와이프
                // 아래로 넘기기
            } else {
                // 위쪽 스와이프
                // 위로 넘기기
            }
        }
    }
}

위 코드에서는 각 방향에 대한 동작을 주석으로 표시하였습니다. 실제로 스와이프 동작에 맞는 기능을 추가하면 됩니다.

결론

이미지 슬라이드쇼의 이미지 스와이프 동작 방향을 인식하는 방법에 대해 알아보았습니다. UIPanGestureRecognizer를 사용하여 스와이프 동작을 감지하고, 감지된 방향에 따라 원하는 동작을 추가할 수 있습니다.

참고 문서: Apple Developer Documentation - UIPanGestureRecognizer