기어가더라도 제대로

TableView - didSelecAtRow 메서드가 입력이 안될때! 본문

만난 에러들

TableView - didSelecAtRow 메서드가 입력이 안될때!

Damagucci-juice 2022. 8. 12. 10:02

두가지 경우가 있을 수 있다. 

 

tableView.delegate = self

하나는 이것을 하지 않은 경우.

다른 하나는 GestureDelegate를 사용하고 있는 경우이다.

예를 들어 TapGestureRecognizer를 사용하고 있다면

didSelectAtRow 의 메서드를 실행하기 전에, gesture recognizer 를 먼저 확인한다. 

그러면 어떻게 해야하는가?

@IBAction func tapView(_ sender: UITapGestureRecognizer) {
        sender.cancelsTouchesInView = false
}

사용하고 있는 gestureRecognizer 에서 cancelsTouchesInView  프로퍼티를 false 로 설정한다.(기본값 = true) 

제스처가 인식이 되었을 때 뷰에 이것을 전달할지 안할지에 대한 값이다.

제스처 인식기가 제스처를 인식하고 이 속성의 값이 true 면, 아직 멈춰있는 제스처의 터치들은 뷰로 전달이 되지 않고, 전달되었던 제스처들은 touchedCancelled() 메서드를 통해 취소가 된다. 
제스처 인식기가 인식을 하지 않거나, 이 속성의 값이 false면, 뷰는 여러 터치 순서에 대한 터치를 받는다. 

한마디로, 제스처 인식기 이외의 터치를 받는다는 말인듯..

Comments