2014-12-31 9 views
5

Wie kann ich die Fußzeilenansicht nur für einen Abschnitt anzeigen?UICollectionView Fußzeile nur für den letzten Abschnitt anzeigen

Wie ich herausgefunden habe, kann ich nil nicht übergeben, um Fußzeilenansichten in anderen Abschnitten zu verbergen, da es zum Absturz führt.

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 
    } 

Antwort

13

Sie können nicht nil anderen Fußzeile Ansichten passieren, aber Sie können die anderen Fußzeile Ansichten Null Höhe, die dasselbe hinausläuft geben - sie erscheint nicht, weil sie keine Höhe haben.

Implementieren Sie also collectionView:layout:referenceSizeForFooterInSection:, um allen Fußzeilen eine Nullhöhe zu geben, außer der, die Sie tatsächlich sehen möchten.

Verwandte Themen