UITableView
의 automaticDimension을 아시나요?
cell의 height를 제약조건만 맞다면, 내부의 크기에 따라 자동으로 rowHeight를 지정해주는 기능입니다.
tableView.rowHeight = UITableView.automaticDimension
tableView.estimatedRowHeight = UITableView.automaticDimension
UICollectionView에서는 automaticDimension을 따로 제공하지 않아 preferredLayoutAttributesFitting
를 override해서 따로 구현해주어야했습니다.
그러나 CompositionalLayout 을 이용하면 UICollectionLayoutListConfiguration을 이용하여 쉽게 automatic dimension을 설정할 수 있습니다.
private lazy var collectionView: UICollectionView = {
let collectionView = UICollectionView(frame: self.view.bounds, collectionViewLayout: createLayout())
collectionView.register(cell: CommentCell.self)
return collectionView
}()
private func createLayout() -> UICollectionViewLayout {
let sectionProvider = { (sectionIndex: Int, layoutEnvironment: NSCollectionLayoutEnvironment) -> NSCollectionLayoutSection? in
var config = UICollectionLayoutListConfiguration(appearance: .plain)
config.showsSeparators = false
let section = NSCollectionLayoutSection.list(
using: config,
layoutEnvironment: layoutEnvironment
)
return section
}
return UICollectionViewCompositionalLayout(sectionProvider: sectionProvider)
}
https://developer.apple.com/documentation/uikit/uicollectionlayoutlistconfiguration
이제 tableView처럼 automatic height 설정이 가능합니다.
간단하죠~!?
하이요 ㅋㅋ
검색했더니 나옴 ㅋㅋ