samsung-ga / woody-iOS-tip

🐶 iOS에 대한 소소한 팁들과 개발하다 마주친 버그 해결기, 그리고 오늘 배운 것들을 모아둔 레포
19 stars 0 forks source link

[TIL] 기본 Cell 구성방식의 변화 #25

Open samsung-ga opened 2 years ago

samsung-ga commented 2 years ago

UITableViewCell의 기존 cell 구성 방식은 아래와 같다. 단순히 리스트를 보여주는 뷰라면 커스텀 셀을 만들지 않고 간단하게 다음과 같이 작성할 수 있었다.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
     let cell = UITableViewCell(style: .default, reuseIdentifier: .none)
     cell.textLabel!.text = "타이틀"
     return cell
}

하지만, cell.textLabeldeprecated가 된다고 한다. 이 사실을 프로젝트 도중 해당 PR을 리뷰하다가 알게 되었고 다른 대안으로 UIListContentConfiguration을 사용하는 방법을 찾을 수 있었다.

사용방법은 링크에서도 볼 수 있듯이 아래와 같다.

var content = cell.defaultContentConfiguration()

// Configure content.
content.image = UIImage(systemName: "star")
content.text = "Favorites"

// Customize appearance.
content.imageProperties.tintColor = .purple

cell.contentConfiguration = content

text와 image의 property는 textPropertiesimageProperties에서 변경이 가능하고, 커스터마이징이 가능한 여러 프로퍼티를 제공한다. 더 자세한 내용은 해당 링크에서 확인할 수 있다.

iOS 14 타겟 이상부터 사용이 가능한 API로 아직 시기 적절이라고 생각하지만 알아두면 좋을 듯 하다.

점차 UIKit의 View들이 Configuration을 이용하여 초기화하는 방식으로 변해가고 있는 추세이다. 이 변화에 잘 적응할 수 있도록 deprecated되는 것들은 바로바로 적어두자.