Open samsung-ga opened 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.textLabel이 deprecated가 된다고 한다. 이 사실을 프로젝트 도중 해당 PR을 리뷰하다가 알게 되었고 다른 대안으로 UIListContentConfiguration을 사용하는 방법을 찾을 수 있었다.
cell.textLabel
사용방법은 링크에서도 볼 수 있듯이 아래와 같다.
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는 textProperties와 imageProperties에서 변경이 가능하고, 커스터마이징이 가능한 여러 프로퍼티를 제공한다. 더 자세한 내용은 해당 링크에서 확인할 수 있다.
textProperties
imageProperties
iOS 14 타겟 이상부터 사용이 가능한 API로 아직 시기 적절이라고 생각하지만 알아두면 좋을 듯 하다.
점차 UIKit의 View들이 Configuration을 이용하여 초기화하는 방식으로 변해가고 있는 추세이다. 이 변화에 잘 적응할 수 있도록 deprecated되는 것들은 바로바로 적어두자.
UITableViewCell의 기존 cell 구성 방식은 아래와 같다. 단순히 리스트를 보여주는 뷰라면 커스텀 셀을 만들지 않고 간단하게 다음과 같이 작성할 수 있었다.
하지만,
cell.textLabel
이 deprecated가 된다고 한다. 이 사실을 프로젝트 도중 해당 PR을 리뷰하다가 알게 되었고 다른 대안으로 UIListContentConfiguration을 사용하는 방법을 찾을 수 있었다.사용방법은 링크에서도 볼 수 있듯이 아래와 같다.
text와 image의 property는
textProperties
와imageProperties
에서 변경이 가능하고, 커스터마이징이 가능한 여러 프로퍼티를 제공한다. 더 자세한 내용은 해당 링크에서 확인할 수 있다.iOS 14 타겟 이상부터 사용이 가능한 API로 아직 시기 적절이라고 생각하지만 알아두면 좋을 듯 하다.
점차 UIKit의 View들이 Configuration을 이용하여 초기화하는 방식으로 변해가고 있는 추세이다. 이 변화에 잘 적응할 수 있도록 deprecated되는 것들은 바로바로 적어두자.