iOS

[ iOS ] contentConfiguration: TableView에 기본 Cell 사용하기 (iOS 14+)

Forest Yun 2022. 11. 29. 13:42
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