通过种类切换Collectionviews页眉/页脚

问题描述 投票:0回答:1

我的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")
    }
}
ios swift header switch-statement collectionview
1个回答
0
投票

原因是我忘了定义页脚的引用大小。如果没有它,那种应用程序就无法察觉。

© www.soinside.com 2019 - 2024. All rights reserved.