전체 Cell의 크기에 맞는 CollectionView / TableView 만들기

Posted on 2021-10-20 by GKSRUDTN99
Swift&Xcode Xcode Swift

전체 Cell의 크기에 맞는 CollectionView / TableView 만들기

1. 아래 Class를 정의한다.
final class ContentSizedTableView: UITableView {
  override var contentSize:CGSize {
    didSet {
      invalidateIntrinsicContentSize()
    }
  }

  override var intrinsicContentSize: CGSize {
    layoutIfNeeded()
    return CGSize(width: UIView.noIntrinsicMetric, height: contentSize.height)
  }
}
  1. contentSize가 변할 때 마다 IntrinsiceContentSize를 invalidate시켜 intrinsicContentSize가 다시 계산되도록 한다.
  2. intrinsicContentSize를 contentSize의 height와 같도록 맞춘다.
    • intrinsicContentSize: TableView / CollectionView의 크기
    • contentSize: View 안에 있는 전체 Cell들의 크기
2. Storyboard에서 TableView / CollectionView의 CustomClass를 위에서 정의한 클래스로 바꾼다.
3. TableView의 Size Inspector의 하단에 있는 Intrinsic Size 속성을 Default에서 plceaholder로 바꾸고, 적절히 크기를 조절한다.