Handling Swipe Gestures

Panther·2021년 7월 30일
0

https://developer.apple.com/documentation/uikit/touches_presses_and_gestures/handling_uikit_gestures/handling_swipe_gestures

"Detect a horizontal or vertical swipe motion on the screen, and use it to trigger navigation through your content."

화면에서 수평 혹은 수직 스와이프 모션을 감지하고, 컨텐트를 통해 네비게이션을 시도합니다.

Overview

스와이프 제스쳐는 사용자가 하나 혹은 하나 이상의 손가락으로 스크린을 수평 혹은 수직 방향으로 가로지를 때 발생합니다. 스와이프 제스쳐를 감지하려면 UISwipeGestureRecognizer 클래스를 사용해야 합니다.

아래 방법 중 한 가지로 제스쳐 리코그나이저를 구현합니다.

  • 코드 작성 방법입니다. 뷰의 addGestureRecognizer(_:) 메소드를 호출합니다.
  • 인터페이스 빌더에서 구현하는 방법입니다. 라이브러리로부터 적합한 객체를 드래그하고 뷰에 드롭합니다.

UISwipeGestureRecognizer 객체는 수평 혹은 수직으로 스크린을 가로지르는 사용자의 손가락 움직임을 추적합니다. 스와이프는 사용자의 손가락이 특정 방향으로 움직일 것을 요구하고, 주요한 방향으로부터 벗어나지 않을 것을 요구합니다. (제스쳐를 위해 필요한 방향과 손가락의 수는 설정 가능합니다.) 스와이프 제스쳐는 이산적입니다. 그렇기 때문에 제스쳐가 성공적으로 끝난 후에만 액션 메소드가 호출됩니다. 결과적으로 스와이프는 제스쳐의 결과에만 관심이 있을 때 적합한 방법이고, 사용자의 손가락 움직임은 중요하지 않습니다.

Note
스와이프는 이산적이기 때문에 결과가 이해될 수 있도록 긋기 혹은 빠른 팬 제스쳐에서만 사용하시기 바랍니다. 스와이프는 상호작용할 수 있는 제스쳐를 위해 의도된 것이 아닙니다. 제스쳐 사용 방법에 대한 더 많은 정보는 Human Interface Guidelines > iOS > User Interaction > Gestures를 살펴보시기 바랍니다.

Human Interface Guidelines
https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/augmented-reality/

Listing 1은 스와이프 제스쳐 리코그나이저를 위한 골격 액션 메소드를 보여부니다. 제스쳐가 인식될 때 작업을 수행하려면 이처럼 메소드를 사용해야 할 것입니다. 제스쳐는 이산적이기 때문에 제스쳐 리코그나이저는 began 혹은 chaned 상태로 진입하지 않습니다.

Listing 1 Performing a task in response to a swipe

@IBAction func swipeHandler(_ gestureRecognizer : UISwipeGestureRecognizer) {
    if gestureRecognizer.state == .ended {
        // Perform action.
    }
}

스와이프 제스쳐 리코그나이저를 위한 코드가 호출되지 않는다면, 아래 조건이 true인지 확인하고 필요한 경우 수정하시기 바랍니다.

  • 뷰의 isUserInteractionEnabled 속성이 true로 설정되어 있는지 확인해야 합니다. 이미지 뷰와 레이블은 이 속성이 기본값으로 false입니다.
  • 터치의 수와 numberOfTouchesRequired 속성에서 구체화된 값이 동일한지 확인합니다.
  • 스와이프의 방향이 방향 속성의 값과 일치하는지 확인합니다.

0개의 댓글