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