2014-12-31 15 views
5

Come posso visualizzare la visualizzazione del piè di pagina solo per una sezione?UICollectionView mostra il piè di pagina solo per l'ultima sezione

Come ho scoperto, non posso passare nil per nascondere le visualizzazioni di piè di pagina in altre sezioni, in quanto produce 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 
    } 

risposta

13

Non è possibile passare ad altre viste nil piè di pagina, ma si può dare le altre viste piè pari a zero altezza, che è la stessa cosa - non appariranno loro, perché non hanno altezza.

Quindi attuare collectionView:layout:referenceSizeForFooterInSection: per assegnare a tutti i piè di pagina un'altezza zero tranne quella che si desidera effettivamente vedere.

Problemi correlati