7

1 つのセクションのみフッター ビューを表示するにはどうすればよいですか?

私が知ったように、nilクラッシュが発生するため、他のセクションのフッター ビューを非表示にすることはできません。

override func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {

        var v : UICollectionReusableView! = nil
        if kind == UICollectionElementKindSectionHeader {
            let x = collectionView.dequeueReusableSupplementaryViewOfKind(UICollectionElementKindSectionHeader, withReuseIdentifier:reuseHeaderIdentifier, forIndexPath:indexPath) as HouseNameReusableView

            let h = houses[indexPath.section]        
            x.nameLabel.text = h["name"] as? String

            return x

        }else if kind == UICollectionElementKindSectionFooter {
            if indexPath.section == houses.count - 1{
            let x = collectionView.dequeueReusableSupplementaryViewOfKind(UICollectionElementKindSectionFooter, withReuseIdentifier:reuseFooterIdentifier, forIndexPath:indexPath) as FooterCollectionReusableView

            return x
            }
        }
        return v
    }
4

1 に答える 1

16

他のフッター ビューに渡すことはできませんがnil、他のフッター ビューにゼロの高さを与えることはできます。これは同じことになります。高さがないため、表示されません。

したがってcollectionView:layout:referenceSizeForFooterInSection:、実際に表示したいものを除いて、すべてのフッターの高さをゼロにするように実装してください。

于 2014-12-31T17:57:20.560 に答える