![](https://velog.velcdn.com/images/rudin_/post/d8f0d042-8cb9-4499-a853-324b14cb0d7b/image.png)
Collection View
- 바둑판 배열로 그리드가 있는 뷰다.
- TableView와 달리, 추가하면 처음부터 셀이 같이 추가된다.
![](https://velog.velcdn.com/images/rudin_/post/75c570fe-28b1-4aca-bbb9-da5f29fe0d0c/image.png)
dataSource
![](https://velog.velcdn.com/images/rudin_/post/3664e137-c3e6-4d77-b954-98f9a73a8a5c/image.png)
- 테이블뷰와 동일하게 컬렉션뷰를 아웃렛으로 연결하고, dataSource와 delegate를 연결해주고 구현하면 된다.
.rawValue
는 이넘케이스의 이름을 String으로 리턴해준다.
indexPath.row
대신 indexPath.item
을 사용한다.
- 동작은 같지만 그..읽는 의미가 다르다고 하더라
delegate
![](https://velog.velcdn.com/images/rudin_/post/db1fd6d6-5168-49b7-a8f2-1cf90980682f/image.png)
indexPath.row
대신 indexPath.item
을 사용한다.
Case Iterable
![](https://velog.velcdn.com/images/rudin_/post/89aef8b1-d2ca-4214-bb47-0653cb1d6e11/image.png)
- enum에서 해당 프로토콜을 채용하면 모든 케이스를 리턴해주는 배열이 자동으로 추가된다.
.allCases
![](https://velog.velcdn.com/images/rudin_/post/283abb4b-7e92-4ac8-b31e-64e0853b4413/image.png)
Compositional Layout
![](https://velog.velcdn.com/images/rudin_/post/9be74460-90f1-41d9-a4ce-7c3be76aeed4/image.png)
- fractionalWidth(0.33)을 통해 각 아이템이 1/3의 공간을 차지하도록
셀 선택 시 뷰 이동할 때 데이터 전달 방법
![](https://velog.velcdn.com/images/rudin_/post/1f6075a9-75e5-4624-b2af-e48f3cf66742/image.png)