How can I show footer view only for one section?
As I found out, I can't pass nil to hide footer views in other sections, as it produces crash.
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
    }
You cannot pass nil to other footer views, but you can give the other footer views zero height, which amounts to the same thing - they won't appear, because they have no height.
So implement collectionView:layout:referenceSizeForFooterInSection: to give all the footers a zero height except for the one you actually want to see.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With