[UIKit] No StroyBoard -TableViewCell (테이블뷰셀) 내부의 버튼이 클릭되지 않을 때

2023. 3. 1. 17:06SWIFT/UIKit

728x90
반응형

🧸 시작

테이블뷰셀에 버튼을 만들어서 클릭 이벤트를 주었지만 작동하지 않았다.

테이블뷰셀을 클릭하는 것은 작동되었으나 내부에 있는 버튼은 클릭이 되지 않았다.

 

 

🧸 문제 해결하기

처음에는 생명주기나 호출의 문제로 생각했지만 뷰의 계층적인 문제였다.

계층을 보게되면 파란색 네모박스는 버튼이고 버튼 앞에 contentView 라는 것이 존재했다.

그러니 아무리 클릭을 해도 버튼을 클릭하는 것이 아니라 뷰를 클릭하게 된 것이다.

 

코드베이스로 뷰를 작성하면서 

테이블뷰셀의 컴포넌트들을 추가하는 뷰가 잘못되었다.

func setAddSubViews() {
    self.addSubview(loadIV)
    self.addSubview(loadPV)
    self.addSubview(loadBtn)
}

 

기존에는 self.addSubView() 에 추가를 해주었지만

func setAddSubViews() {
    self.contentView.addSubview(loadIV)
    self.contentView.addSubview(loadPV)
    self.contentView.addSubview(loadBtn)
}

self.contentView.addSubview() 로 변경하여 contentView에 추가해준다.

 

이제 버튼이 가장 위로 올라오면서 클릭이 가능해진다.

 

 

 

 

 


📂 정리

테이블뷰셀의 컴포넌트들은 contentView 에 추가해주자!

 

 

 

 

 

728x90
반응형