공식문서
데이터 항목의 정렬된 컬렉션을 관리하고 사용자 지정 가능한 레이아웃을 사용하여 표시하는 개체 입니다.
Collection View는 데이터의 나열이 자유롭다..
UICollectionViewLayout 객체를 상속받아서 나만의 레이아웃 설정 가능 → 가장 일반적인 용도는 데이터 아이템을 그리드와 같은 형태로 표현.. 그래도 다양한 방법으로 컬렉션뷰의 레이아웃을 사용자 정의할 수 있습니다. -> 리스트형으로도 바꿀 수 있다는 얘기?
UICollectionViewLayout이란??
컬렉션 뷰의 레이아웃을 전문적으로 관리하는 객체
냉장고 속에 있는 반찬통이라고 생각 하자
데이터소스
컬렉션뷰 데이터소스 객체는 컬렉션뷰와 관련하여 가장 중요한 객체이며, 필수로 제공해야 합니다. 컬렉션뷰의 콘텐츠를 관리하고 해당 콘텐츠를 표현하는데 필요한 뷰를 만듭니다.
데이터소스 객체를 구현하려면 UICollectionViewDataSource프로토콜을 준수하는 객체를 만들어야 합니다.
데이터소스 객체는 최소한 collectionView(_:numberOfItemsInSection:)
과 collectionView(_:cellForItemAt:)
메서드를 구현해야 하며 나머지 메서드는 선택사항입니다.
필수 메서드
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
주요 선택 메서드numberOfSections(in:) : 컬렉션뷰의 섹션의 개수를 묻는 메서드. 이 메서드를 구현하지 않으면 섹션 개수 기본 값은 1.
optional func numberOfSections(in collectionView: UICollectionView) -> Int
collectionView(_:canMoveItemAt:) : 지정된 위치의 항목을 컬렉션뷰의 다른 위치로 이동할 수 있는지를 묻는 메서드.
optional func collectionView(_ collectionView: UICollectionView, canMoveItemAt indexPath: IndexPath) -> Bool
collectionView(_:moveItemAt:to:) : 지정된 위치의 항목을 다른 위치로 이동하도록 지시하는 메서드.
```swift
optional func collectionView(_ collectionView: UICollectionView, moveItemAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath)
```
컬렉션뷰 델리게이트 포로토콜은 컬렉션뷰에서 셀의 선택 및 강조표시를 관리하고 해당 셀에 대한 작업을 수행할 수 있는 메서드를 정의합니다. 이프로토콜의 메서드는 모두 선택사항입니다.
collectionView(_:shouldSelectItemAt:) : 지정된 셀이 사용자에 의해 선택될 수 있는지 묻는 메서드.선택이 가능한 경우 true
로 응답하며 아닌 경우는 false
로 응답.
optional func collectionView(_ collectionView: UICollectionView, shouldSelectItemAt indexPath: IndexPath) -> Bool
collectionView(_:didSelectItemAt:) : 지정된 셀이 선택되었음을 알리는 메서드.
optional func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
collectionView(_:shouldDeselectItemAt:) : 지정된 셀의 선택이 해제될 수 있는지 묻는 메서드. 선택 해제가 가능한 경우 true
로 응답하며, 그렇지 않다면 false
로 응답.
optional func collectionView(_ collectionView: UICollectionView, shouldDeselectItemAt indexPath: IndexPath) -> Bool
collectionView(_:didDeselectItemAt:) : 지정된 셀의 선택이 해제되었음을 알리는 메서드.
optional func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath)
collectionView(_:shouldHighlightItemAt:) : 지정된 셀이 강조될 수 있는지 묻는 메서드. 강조해야 하는 경우 true
로 응답하며, 그렇지 않다면 false
로 응답.
optional func collectionView(_ collectionView: UICollectionView, shouldHighlightItemAt indexPath: IndexPath) -> Bool
collectionView(_:didHighlightItemAt:) : 지정된 셀이 강조되었을 때 알려주는 메서드.
optional func collectionView(_ collectionView: UICollectionView, didHighlightItemAt indexPath: IndexPath)
collectionView(_:didUnhighlightItemAt:) : 지정된 셀이 강조가 해제될 때 알려주는 메서드.
optional func collectionView(_ collectionView: UICollectionView, didUnhighlightItemAt indexPath: IndexPath)