通过种类切换Collectionviews页眉/页脚
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过种类切换Collectionviews页眉/页脚相关的知识,希望对你有一定的参考价值。
我的CollectionView中有一个页眉和一个页脚,我希望它们都能显示出来。在当前状态下,我获得2个Header,因为Section的“kind”不会自动更改,并且它会两次进入“UICollectionElementKindSectionHeader”的情况。
我可以切换indexPath而不是那种,但我想知道另一种方法。
func setupCollectionView() {
collectionView?.backgroundColor = .white
collectionView?.register(ProfileHeader.self, forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: ProfileHeader.reuseIdentifier)
collectionView?.register(ProfileFooter.self, forSupplementaryViewOfKind: UICollectionElementKindSectionFooter, withReuseIdentifier: ProfileFooter.reuseIdentifier)
}
override func numberOfSections(in collectionView: UICollectionView) -> Int {
return 2
}
override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
switch kind {
case UICollectionElementKindSectionHeader:
let header = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: ProfileHeader.reuseIdentifier, for: indexPath) as! ProfileHeader
header.user = self.user
return header
case UICollectionElementKindSectionFooter:
let footer = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: ProfileFooter.reuseIdentifier, for: indexPath) as! ProfileFooter
return footer
default:
assert(false, "Unexpected element kind")
}
}
答案
原因是我忘了定义页脚的引用大小。如果没有它,那种应用程序就无法察觉。
以上是关于通过种类切换Collectionviews页眉/页脚的主要内容,如果未能解决你的问题,请参考以下文章