UICollectionView shows footer for last section only

How can I show footer view for only one section?

As I found out, I cannot pass nil to hide the footer views in other sections, as it causes a 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 } 
+5
source share
1 answer

You cannot pass nil to other footer representations, but you can give other footers zero height, which is equal to the same thing - they will not be displayed because they have no height.

So, implement collectionView:layout:referenceSizeForFooterInSection: to give all bottom columns zero height, except the one you really want to see.

+13
source

Source: https://habr.com/ru/post/1210187/


All Articles