728x90
공부 기록
UITableViewCell은 커스텀하지 않고도 cell을 구성할 수 있도록 여러 옵션을 제공한다. 가장 간단한 방법으로는 UITableViewCell의 프로퍼티 중 textLabel, detailTextLabel, imageView를 사용하는 것이였지만, iOS 14 이후부터는 이 프로퍼티들은 Deprecated 되어 더 이상 사용할 수 없다. 이것들을 대체하는 프로퍼티가 개발되었는데, 바로 contentConfiguration 이다.
UIButton에서도 이와 유사한 프로퍼티인 configuration(iOS 15+)이 있다. 많은 Class들에서 Configuration이 등장하는 것으로 보아 개발자가 View 구성을 한 객체로 정리되며 재사용이 가능한 형태로 개발하도록 Apple에서 방향성을 제시해주는 것 같다.
Deprecated 에서도 잘 나와있듯이 contentConfiguration의 사용은 간단하다.
Deprecated
cell의 text를 관리하기 위해 content configuration을 대신 사용하세요. 기본적으로 제공되는 list content configuration을 사용하기 위해서는 defaultContentConfiguration()를 사용할 수 있습니다. 그리고 반환된 configuration의 text 프로퍼티를 통해 초기 text를 설정할 수 있으며, 이를 cell에 적용하기 위해서는 cell의 contentConfiguration 프로퍼티에 할당하면 됩니다.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = UITableViewCell()
var content = cell.defaultContentConfiguration()
content.text = "\(indexPath.row + 1)" //제목 text
content.secondaryText = "\(indexPath.row + 1)번 cell" //설명 text
content.image = .init(systemName: "person.fill") //이미지
content.imageProperties.tintColor = .darkGray //이미지 색상
cell.contentConfiguration = content //cell에 configuration 적용
return cell
}
UITableViewCell.contentConfiguration
UITableViewCell.defaultContentConfiguaration
UITableViewCell.textLabel
728x90
'iOS' 카테고리의 다른 글
[ iOS ] 공유하기 기능 구현 - UIActivityViewController (0) | 2023.01.03 |
---|---|
[ iOS ] UIListContentConfiguration: CollectionView에 기본 Cell 사용하기 (14+) (0) | 2022.12.04 |
[ iOS ] UIButton.Configuration 사용하기(1) - Init, Title (iOS 15) (0) | 2022.10.13 |
[iOS ] 데이터 전달 : (3/5) NotificationCenter로 전달하기 (0) | 2022.06.21 |
[ iOS ] 데이터 전달 : (2/5) DelegatePattern으로 전달하기 (0) | 2022.06.20 |