UITableView Cell 안에 UIButton을 넣어 터치 이벤트를 주려고 했는데, 아무리 해도 버튼 tap 인식이 안되는 것이었다.
대부분의 예제가 스토리보드를 사용해서 구현을 했던데, 코드로 구현을 했더니 아주 사소한? 문제로 몇 시간을 날렸다 ㅎㅎㅎ
우선 내가 사용한 방법은 Delegate 패턴을 사용하여 터치 이벤트를 추가해주었다.
tableView header에서는 이 방법으로 버튼 터치가 잘만 되는데, cell에서는 아무리 해도 터치 이벤트 적용이 안되는 거야 왜ㅐㅐ
문제는 이벤트 추가가 아니라 cell 내에서 UIButton 을 추가할 때 있었다.. ㅎㅎㅎ
cell 내에서 코드로 UIButton을 추가할 때 그냥 self.addSubview(button) 이렇게 해주면 투명한 ContentView가 더 상위에 자리잡아 터치 이벤트가 작동을 안한다는...
self.contentView.addSubview(button) 해주니까 허무하게도 아주 작동이 잘되더라. ㅎㅎㅎ
스토리보드를 사용하여 cell 내에 object를 넣으면, 자동으로 Cell 의 ContentView 내에 object가 추가되는 것을 볼 수 있다.
따라서 코드로 addSubview를 해줄 때도 cell에다 직접 추가하는 것이 아니라
앞으로는 cell의 contentView에다 추가를 하도록 self.contentView.addSubview( )를 사용하는 습관을 들여야겠다..
참고 : 쩝쩝이 - IButton.addTarget이 작동 안 될 때 In Code,
UIButtonAction 구현 방법들
참고 : https://leechamin.tistory.com/500
Delegate 패턴 이용하여 cell 내부 버튼 이벤트 처리
https://m.blog.naver.com/jdub7138/220937372865
콜백 클로저 / notification 패턴도 사용해보기? 알아보기?
'초보 iOS 개발자의 일상 > 개발 업무' 카테고리의 다른 글
[Swift iOS] 관심상품 추가 토스트 메시지 띄우기 (feat. DispatchWorkItem) (0) | 2022.08.18 |
---|---|
[Swift iOS] Firebase A/B Testing (0) | 2022.07.19 |
[Swift iOS] 카카오 adfit 배너 광고 설정하기 (0) | 2022.07.05 |
[Swift iOS] UPC-A barcode format scan & generate (0) | 2022.03.16 |
[iOS] Fastlane을 이용한 배포 자동화 (0) | 2022.02.14 |