반응형
collectionView에서 cell은 등록하고 dequeueReusableCell 메서드로 불러와 사용했습니다.
하지만 Header는 비슷하지만 조금 다른 방식을 사용해 정리해 보려 합니다.
먼저 헤더는 UICollectionReusableView을 준수합니다.
cell -> UICollectionViewCell와 다름
Header -> UICollectionReusableView
이후 헤더를 커스텀하는 방식은 기존cell처럼 하시면 됩니다.
이제 헤더를 collectionView에 register하고 불러와 사용해 보겠습니다.
register
collectionView.register(
"헤더class".self,
// 이 부분으로 header임을 구분할 수 있다.
forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader,
withReuseIdentifier: "고윳값 설정"
)
Header 불러오고 사용하기
// 헤더를 사용하는 dataSource 메서드
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
guard kind == UICollectionView.elementKindSectionHeader, // 헤더일때
let header = collectionView.dequeueReusableSupplementaryView(
ofKind: kind,
withReuseIdentifier: "등록한 고윳값",
for: indexPath
) as? "class 타입캐스팅" else {return UICollectionReusableView()}
return header
}
헤더의 크기 결정
// 참고: UICollectionViewDelegateFlowLayout의 메서드
// 헤더 사이즈 설정
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
return CGSize(width: CGFloat, height: "CGFloat")
}
반응형
'iOS > UIKit' 카테고리의 다른 글
[iOS] Label에 Padding 주기(StoryBoard), Label에 cornerRadius 주기 (0) | 2022.03.02 |
---|---|
[iOS] Transform을 이용해 KeyBoard 이벤트 처리 (0) | 2022.03.02 |
[iOS] collectionView 메서드, 프로퍼티 일부 정리 (0) | 2022.02.22 |
[iOS] tableView의 메서드, 프로퍼티 일부 정리 (0) | 2022.02.22 |
[iOS] TableView의 prefetching 기능 (0) | 2022.02.22 |