티스토리 뷰
반응형
아이폰 앱을 사용 시 터치 핸들러를 받아야 할 경우가 발생합니다. 키패드 올라간 상태로 외부 화면 클릭 시 키패드 숨기기 기능 시 필요합니다.
키패드 숨기는 기능을 사용 시 기본적으로 touchesBegan() 메소드를 override 하여 사용합니다.
1 2 3 4 | override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { // todo... } |
위와 같은 방법을 시도하였으나 touchBegan() 함수를 호출 못하는 경우가 생길 수 있습니다.
예를 들면 UiTableView의 Cell 터치 시도 시 발생합니다. 이럴 경우 (UiTableView의 Cell 터치 시도) 직접 GestureRecognizer을 Add 해주어 핸들러 캐치 하여야 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | override func viewDidLoad() { super.viewDidLoad() //핸들러 등록 view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleTap))) } //터치가 있을 시 핸들러 캐치 func handleTap(sender: UITapGestureRecognizer) { if sender.state == .ended { // todo... } sender.cancelsTouchesInView = false } |
참고로 #selector는 swift3에서 action 설정이 변경된 방식입니다.
위 두 가지 방식을 사용하면 View와 TableView 둘다 터치 핸들러를 사용할 수 있습니다.
반응형
'프로그래밍 > iOS' 카테고리의 다른 글
[SWIFT] 키보드 숨기기 (0) | 2017.12.19 |
---|---|
[SWIFT] 스크롤 뷰에 xib View 불러오기 (0) | 2017.12.18 |
[SWIFT3]Accelerometer(가속도계) 사용 법 (0) | 2017.12.18 |
[SWIFT]옵셔널 (0) | 2017.12.18 |
[SWIFT] Navigation Bar 숨김( Hide) (0) | 2017.12.18 |
댓글
최근에 올라온 글
최근에 달린 댓글
TAG
- missioon
- 고시문
- IOS
- 고시문헬퍼
- 미션차이나센터
- 안드로이드
- 점수판
- 디자인패턴
- Android
- DI
- 임용고시
- 패턴
- java
- 탁구
- missionchina
- Kotlin
- RXjava
- view
- Android Studio
- 코틀린
- flutter
- MCC
- IT
- 선교
- 알고리즘
- 스코어헬퍼
- push
- swift
- issue
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함