나만의 공부 노트

Collection View에 관하여 본문

정리 X/UIKit

Collection View에 관하여

va95 2021. 2. 7. 19:19

음.. table view와 비슷한데 추가 기능들이 많음!

 

table view와 같은 것들은 굳이 언급하지 않고 다른 점들만 아래에 적어보겠음

 

이런 구조인데

table view는 row라고 셀 수 있지만, collection view는 row라고 세기엔 각각 갯수가 달라서 그냥 item으로 셈(indexPath에 들어있따)

 

이제 supplementary view에 header, footer type으로 추가해줄 수 있음

supplementary view는 uicollectionreusablecell 클래스를,

각각의 item들은 uicollectionreusablecell을 상속받은 UICollectionViewCell 클래스를 써야함

 

 

특히

collectionView는 아이템 배치가 매우 자유로움

그래서 아이템 배치에 관한 규칙을 설정해야하는데 그것이 바로 아래에 나온 layout!

 

  • 레이아웃(Layout)
    • UICollectionViewLayout / UICollectionViewLayoutAttribute / UICollectionViewUpdateItem : UICollectionViewLayout의 서브클래스는 레이아웃 객체라고 하며 컬렉션 뷰 내부의 셀 및 재사용 가능한 뷰의 위치, 크기 및 시각적 속성을 정의합니다. UICollectionViewLayoutAttributes는 레이아웃 프로세스 중에 컬렉션뷰에 셀과 재사용가능한 뷰를 표시하는 위치와 방법을 알려줍니다. 레이아웃 객체 아이템이 삽입, 삭제, 혹은 컬렉션뷰 내에서 이동할 때마다 레이아웃 객체는 UICollectionViewUpdateItem 클래스의 인스턴스를 받습니다.
  • 플로우 레이아웃(Flowlayout)
    • UICollectionViewFlowLayout / UICollectionViewDelegatFlowLayout protocol : 그리드 혹은 다른 라인기반(lined-based) 레이아웃을 구현하는 데 사용됩니다. 클래스를 그대로 사용하거나 동적으로 커스터마이징할 수 있는 플로우 델리게이트 객체와 함께 사용할 수 있습니다.

기본적으로 flow layout이 되어있고, custom으로 제작할 수도 있는 듯함. custom은 나중에 구현해보도록 하자

 

flow layout을 사용했다면 delegate 프로토콜을 이용해서 추가적인 기능을 구현 가능하다

 

  • UICollectionViewDelegateFlowLayout 프로토콜 : UICollectionViewLayout 객체와 함께 그리드 기반 레이아웃을 구현하기 위한 기능을 정의한 프로토콜입니다.

 


 

셀의 크기에 관련해서...

우선순위를 정리해보자

 

일단 크기를 넣을 수 있는 곳은

layout

collectionView

cell

요렇게 3개에서 설정 가능(당연히 UICollectionView의 구성이 이렇게 되어있으니..)하고

 

읭?

일단 storyboard에서 flow layout으로 설정하면

collectionView의 셀 크기로 되는거 같고

 

코드에서 flow layout으로 설정하면

flowlayout의 delegate function   또는   layout의 attribute이 무조건 셀의 크기로 결정되는 듯

 

아무리해도 기본적으로 셀 스스로의 크기는 개무시되는것 같음;;(이건 table view랑은 다르게 정적으로 구성하는게 아니니깐 그런건가?)

 

-> 정리해보면 일단 layout이 아이템을 배치하는데 가장 중요해서 우선순위가 가장 높은 것 같음

-> 설정을 안하면 이제 차례차례 아래로 가면서 물어보는 듯(너 크기가 얼마야?)

-> cell의 자체 크기를 바탕으로 갖게 할 순 없을까? <- collection view의 크기 설정을 없애야 할 것 같은데..

 

+

아...

애초에 layout이 셀 크기 결정하고 collectionView는 셀 크기 설정 못함

layout이 다하네

'정리 X > UIKit' 카테고리의 다른 글

Navigation Bar에 대하여  (0) 2021.02.07
Scroll View에 관하여  (0) 2021.02.06
Table View에 관하여  (0) 2021.02.06
Control에 관하여  (0) 2021.02.06
View에 관하여  (0) 2021.02.06