ContentSize(셀 전체) 만큼 커지는 UITableView/UICollectionView
UIButton, UILabel 처럼 contentSize만큼 intrinsicContentSize가 커지도록 적용한 커스텀 테이블뷰/ 컬렉션뷰 입니다.
리스트 전체를 한 번에 보여줘야하는 컴포넌트를 만들 때 유용하게 사용할 수 있습니다.
물론 이렇게 사용하면 재사용 하는 부분이 없기 때문에 UIStackView만을 이용해서 만들 수 있지만 변경된 새로운 값을 보여줘야 할 때 StackView는 변경점을 찾아 수정하고 전체를 업데이트 해줘야 하지만 TableView/StackView는 변경된 값을 바인딩만 시켜주면 끝이라 더 쉽고 효율적입니다,
open class IntrinsicContentHeightTableView: UITableView {
open override var contentSize: CGSize {
didSet {
invalidateIntrinsicContentSize()
}
}
open override var intrinsicContentSize: CGSize {
layoutIfNeeded()
return CGSize(width: UIView.noIntrinsicMetric, height: contentSize.height)
}
}
UIScrollView + UIStackView + IntrinsicContentHeightTableView