안녕하세요. 스벅보안관입니다.
요즘 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로 이벤트 기능 잘 넣어서 구현할 때 꿀빨자..!(?)
'iOS' 카테고리의 다른 글
[iOS] TableViewController - [2] (0) | 2024.05.28 |
---|---|
[iOS] TableViewController - [1] (0) | 2024.05.24 |
[iOS] Guard 구문을 사용하는 이유 (0) | 2024.05.22 |
[iOS] 버전별 UIButton의 차이 (0) | 2024.05.15 |
[iOS] iOS개발의 기본적인 배경과 흐름(?) (0) | 2024.05.15 |