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
[iOS] UITableViewCell내 UIButton 액션이 작동하지 않을 때 (feat. tag/delegate/closure)
아무렇지 않게 tableView의 CustomCell에 UIButton을 넣어주고 addTarget을 하여 액션을 넣어주고 있었다. . . 응??🧐 . . 당연히 cell에 넣어주고 action을 주면 작동을 하리라 생각했으나 되지 않았다..! 바로..
leechamin.tistory.com
Delegate 패턴 이용하여 cell 내부 버튼 이벤트 처리
Delegation 패턴을 이용하여 Cell내부의 버튼 이벤트 처리하기 - 야곰닷넷
앱잼동안 구현했던 부분중에 테이블 뷰 셀 안에 버튼을 넣어서 버튼 액션을 다르게 처리해야 했었다. 옆에 […]
yagom.net
https://m.blog.naver.com/jdub7138/220937372865
[iOS Swift] 객체간 소통 - Callback, Notification, Delegation
iOS에서 객체들끼리 교신하는 대표적인 방법으로는 Callback, Notification, Delegation 이렇게 3가지...
blog.naver.com
콜백 클로저 / 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 |