TIL(Today I Learned)

UITableView
  • 단일 열에 배열된 행을 사용해 데이터를 표시하는 뷰
  • UIScrollView를 상속
  • 목록 스타일을 구현할때 사용되며 수직 스크롤만 가능
  • 테이블의 개별 항목을 구성하는 Cell은 UITableViewCell
  • indexPath값을 통해 Cell을 구분
  • 여러 행은 하나의 섹션 안에 구성될 수 있고, 각 섹션은 Header와 Footer를 포함
  • Plain, Grouped, insetGrouped 세가지의 스타일이 존재
  • 장점
    1. cell을 재사용할 수 있기떄문에 cell을 초기화하는 부담 최소화
    2. 메모리를 절약하여 많은 데이터를 효율적으로 표시 가능
  • 아쉬운 점
    1. 여러 디자인 요소를 추가하거나, header / footer 이외의 위치에 디자인 제한
    2. cell 내부에 뷰를 별도로 추가하거나 강제로 섹션을 나누는 방법 필요
    3. 표시하려는 cell을 반환하기 전에 메세지 크기에 많은 cell의 높이를 계산하여 UITableView에 전달해야함
    4. 성늘을 향상시키기 위해서는 별도의 캐시를 마련하여 cell의 높이 관리가 필요
CollectionView
  • 여러 데이터를 관리하고 커스텀 가능한 레이아웃을 사용하여 사용자에게 보여줄 수 있는 객체
  • UIScrollView를 상속
  • 수직 / 수평 스크롤이 모두 가능
  • 테이블 뷰에서 할 수 있는 모든 표현 가능
  • 색현을 가질 수 있으며 indexPath값을 이용하여 cell을 구분
  • 컬렉션의 개별 항목을 구성하는 Cell은 UICollectionViewCell
  • UICollectionViewDelegateFlowLayout 프로토콜을 통해 본인이 원한느 모양으로 레이아웃을 커스텀해서 사용 가능

  • 장점
    1. UITableView에서 구현하기 어려웠던 여러가지 레이아웃 커스터마이징 기능을 제공
      • 별로도 레이아웃 서브클래스를 만들지 않고, UICollectionViewFlowLayout을 사용하는 것만으로도 기본적인 그리드 레이아웃을 구현 가능
  • 아쉬운 점
    1. TableView에 비해 저점과 고점이 모두 높음
결론
  • 간단한 데이터만 보여줘도 되는 경우에는 테이블뷰로 충분히 구현 가능, 다만 셀의 모양을 커스텀하길 원하거나 추후 디자인의 수정 가능성이 높다면 컬렉션뷰를 사용 권장

댓글남기기