iOS

[iOS] GestureRecognizer

스벅 보안관 2024. 5. 20. 13:54

안녕하세요. 스벅보안관입니다.

요즘 6시반에 일어났더니 아침형인간이 되기는 커녕, 그냥 죽고싶습니다...

 

 

암튼,

이번에는 iOS에서 제공하는 GestureRecognizer에 대해 설명하겠습니다.

 

GestureRecognizer

GestureRecognizer는 말 그대로 제스처에 관련된 이벤트들을 인식해주는 클래스다.

간단하게 말하면 터치 이벤트와 같은 기능들을 간단하게 처리해준다.

 

GestureRecognizer 종류

1. UITapGestureRecognizer

- 단일 탭 또는 다중 탭을 인식합니다

- 사용 예: 버튼 클릭, 이미지 확대/축소 등.

 

2. UIPinchGestureRecognizer

- 두 손가락을 사용한 핀치 제스처를 인식합니다.

- 사용 예: 이미지 확대 및 축소

 

3. UIRotationGestureRecognizer

- 두 손가락을 사용한 회전 제스처를 인식합니다.

- 사용 예: 이미지를 회전

 

4. UISwipeGestureRecognizer

- 한 손가락 또는 여러 손가락으로 이동하는 팬 제스처를 인식합니다.

- 사용 예: 화면 전환, 아이템 삭제

 

5 UIPanGestureRecognizer

- 한 손가락 또는 여러 손가락으로 이동하는 팬 제스처를 인식합니다.

- 사용 예: 드래그 앤 드롭 기능 

 

6. UILongPressGestureRecognizer

- 길게 누르는 제스처를 인식합니다.

- 사용 예: 추가 옵션 표시, 컨텍스트 메뉴 호출

 

GestureRecognizer 사용 방법

1. 스토리보드 없이

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // UITapGestureRecognizer 생성
        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
        
        // View에 추가
        self.view.addGestureRecognizer(tapGesture)
    }
    
    @objc func handleTap(_ sender: UITapGestureRecognizer) {
        print("화면이 탭되었습니다!")
    }
}

 

2. 스토리보드 

 

step 1

show library -> 원하는 제스처 선택 -> 원하는 곳에 연결

 

step 2

Inspector 영역에서 UserInteraction 활성화

 

(UIButton 같이 이미 제스처 기능이 있는 것들은 이렇게 Interaction이 지정되어있다!)

 

 

참고로 하나의 제스처는 하나의 객체에만 허용한다!!

 

 

---------------------------------------------------------------------------

오늘의 결론

GestureRecognizer로 이벤트 기능 잘 넣어서 구현할 때 꿀빨자..!(?)