일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- COLOR
- forEach
- 오브젝트
- UserDefaults
- 프로세스 스케줄링
- decode
- async
- 데드락
- core data
- 운영체제
- Codable
- SwiftUI
- 앨런
- Algorithm
- 인프런
- deadlock
- 동기화
- IOS
- 알고리즘
- Apple Developer Academy
- 비동기
- scrollview
- Swift
- 동시성
- struct
- @state
- 100 days of SwiftUI
- Linked List
- 가상 메모리
- 상호배제
Archives
- Today
- Total
기어가더라도 제대로
TableView - didSelecAtRow 메서드가 입력이 안될때! 본문
두가지 경우가 있을 수 있다.
tableView.delegate = self
하나는 이것을 하지 않은 경우.
다른 하나는 GestureDelegate를 사용하고 있는 경우이다.
예를 들어 TapGestureRecognizer를 사용하고 있다면
didSelectAtRow 의 메서드를 실행하기 전에, gesture recognizer 를 먼저 확인한다.
그러면 어떻게 해야하는가?
@IBAction func tapView(_ sender: UITapGestureRecognizer) {
sender.cancelsTouchesInView = false
}
사용하고 있는 gestureRecognizer 에서 cancelsTouchesInView 프로퍼티를 false 로 설정한다.(기본값 = true)
제스처가 인식이 되었을 때 뷰에 이것을 전달할지 안할지에 대한 값이다.
제스처 인식기가 제스처를 인식하고 이 속성의 값이 true 면, 아직 멈춰있는 제스처의 터치들은 뷰로 전달이 되지 않고, 전달되었던 제스처들은 touchedCancelled() 메서드를 통해 취소가 된다.
제스처 인식기가 인식을 하지 않거나, 이 속성의 값이 false면, 뷰는 여러 터치 순서에 대한 터치를 받는다.
한마디로, 제스처 인식기 이외의 터치를 받는다는 말인듯..
Comments