# Collection View - Erick, Maxhyunm ### 1. 컬렉션뷰와 테이블뷰의 차이점이 무엇인가 - **스크롤 설정**: `Table View`는 수직 스크롤만 가능하고, `Collection View`는 수직/수평 모두 가능합니다. - **셀 배치**: `Table View`는 행에 하나의 셀만이 들어갈 수 있고 `Collection View`는 한 행에 한 개 이상의 셀을 넣을 수 있습니다. - **레이아웃 설정**: `Table View`는 기본적으로 제공되는 스타일이 존재하고, `Collection View`는 `UICollectionViewLayout`을 상속받은 객체를 통해 레이아웃 설정을 할 수 있습니다. - `UICollectionViewLayout`의 경우 직접 상속받아 커스터마이징 레이아웃을 생성할 수도 있고, 애플에서 제공하는`UICollectionViewFlowLayout`, `UICollectionViewTransitionLayout` 등을 활용하여 쉽게 레이아웃 설정을 할 수도 있습니다. - **활용**: 한 행을 길게 쓰는 `Table View` 같은 경우는 텍스트 위주의 데이터를 나열할 때 활용하기 좋고, `Grid View`를 구현할 수 있는 `Collection View`의 경우 이미지 데이터를 나열할 때 활용하기 좋습니다. ### 2. 각 앱의 화면을 테이블뷰로 구현하는 것이 좋을지, 컬렉션뷰로 구현하는 것이 좋을지 그 이유에 대해 의논해봅시다 |페이스북 - 타임라인| |:-:| |<img src="https://hackmd.io/_uploads/HJj9s5oqn.png" width="300">| |선택 : `CollectionView`| |타임라인의 전체 리스트는 `TableView`로도, `CollectionView`로도 활용 가능한 형태라고 생각되지만 복수의 이미지가 포함된 게시물의 경우 이미지 수량에 따라 각기 다른 레이아웃의 `GridView`로 분할되어 표시되는 지점에서 내부적으로 `CollectionView`가 적용되고 있다고 생각했습니다.| |인스타그램 - 타임라인| |:-:| |<img src="https://hackmd.io/_uploads/HkAvnqoq2.png" width="300">| |선택 : `CollectionView`| |인스타그램 역시 페이스북과 마찬가지로 전체 리스트는 `TableView`로도, `CollectionView`로도 볼 수 있을 것 같습니다. 하지만 타임라인에 뜨는 추천 릴스 기능이 있는데 이는 가로 스크롤을 통해 여러 셀을 볼 수 있다는 점에서 `CollectionView`가 적합하다고 생각되었습니다.| |미리 알림 앱 - 메인화면| |:-:| |<img src="https://hackmd.io/_uploads/SkDFn9sch.png" width="300">| |선택 : `CollectionView`| |한 행에 두 가지 데이터가 블록 형식으로 표시되고 있기 때문에 `CollectionView`가 적합하다고 생각됩니다.| |미리 알림 앱 - 목록화면| |:-:| |<img src="https://hackmd.io/_uploads/rycqn5j53.png" width="300">| |선택 : `TableView`| |하나의 행 안에 한 가지 데이터만 들어가는 점, 모든 행의 `Radio` 버튼 위치와 `Textfield` 위치가 동일한 점을 보았을 때 `TableView`라고 생각했습니다.| |iPhone App Store의 투데이 화면| |:-:| |<img src="https://hackmd.io/_uploads/BJCPh9och.png" width="300">| |선택 : `CollectionView`| |화면의 셀들이 모두 동일한 셀이 아닌 커스텀하게 만들어진 것 같은 셀들이 모여있어 셀의 커스텀이 더 자유로운 `CollecionView`를 이용했다고 생각했습니다.| |시계 앱의 알람 목록화면| |:-:| |<Img src="https://hackmd.io/_uploads/SJf-jciqn.png" width="300"/>| |선택 : `TableView`| |시간만 달라지며 반복되는 하나의 셀이 한 열에 구성되어 있어 `TableView`라고 생각했습니다.|