CollectionView란??

Brad·2022년 7월 19일
0

Collection View가 멀까??

공식문서

데이터 항목의 정렬된 컬렉션을 관리하고 사용자 지정 가능한 레이아웃을 사용하여 표시하는 개체 입니다.

Collection View는 데이터의 나열이 자유롭다..

UICollectionViewLayout 객체를 상속받아서 나만의 레이아웃 설정 가능 → 가장 일반적인 용도는 데이터 아이템을 그리드와 같은 형태로 표현.. 그래도 다양한 방법으로 컬렉션뷰의 레이아웃을 사용자 정의할 수 있습니다. -> 리스트형으로도 바꿀 수 있다는 얘기?

UICollectionViewLayout이란??
컬렉션 뷰의 레이아웃을 전문적으로 관리하는 객체

컬렉션 뷰 셀

냉장고 속에 있는 반찬통이라고 생각 하자

  • 데이터 아이템을 화면에 표시합니다
  • 하나의 셀은 하나의 데이터 아이템을 화면에 표시합니다.

컬렉션뷰 셀 vs 테이블뷰 셀 두개가 비슷한 건 알겠는데 어떤 차이점이..

  • 테이블 뷰의 구조는 콘텐츠 영역과 악세서리뷰 영역으로 나뉘었지만, 컬렉션뷰 셀은 배경뷰와 실제 콘테츠를 나타내는 콘텐츠뷰로 나뉘어져 있음
  • 테이블뷰 셀은 기본으로 제공되는 특정 스타일을 적용할 수 있지만 컬렉션뷰 셀은 특정한 스타일이 따로 없다.
  • 테이블 뷰 셀은 목록형태로만 레이아웃되지만, 컬렉션뷰 셀은 다양한 레이아웃을 지원

컬렉션뷰 데이터소스와 델리게이트

데이터소스

컬렉션뷰 데이터소스 객체는 컬렉션뷰와 관련하여 가장 중요한 객체이며, 필수로 제공해야 합니다. 컬렉션뷰의 콘텐츠를 관리하고 해당 콘텐츠를 표현하는데 필요한 뷰를 만듭니다.

데이터소스 객체를 구현하려면 UICollectionViewDataSource프로토콜을 준수하는 객체를 만들어야 합니다.

데이터소스 객체는 최소한 collectionView(_:numberOfItemsInSection:)
과 collectionView(_:cellForItemAt:) 메서드를 구현해야 하며 나머지 메서드는 선택사항입니다.

필수 메서드

  • collectionView(_:numberOfItemsInSection:) : 지정된 섹션에 표시할 항목의 개수를 묻는 메서드.
     func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
  • collectionView(_:cellForItemAt:) : 컬렉션뷰의 지정된 위치에 표시할 셀을 요청하는 메서드.
    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)
profile
iOS 개발자가 되고 싶은 브래드 입니다.

0개의 댓글