2014-12-31 13 views
5

Jak wyświetlić widok stopki tylko dla jednej sekcji?UICollectionView wyświetlaj stopkę tylko dla ostatniej sekcji

Jak się dowiedziałem, nie mogę przekazać nil, aby ukryć widoki stopek w innych sekcjach, ponieważ powoduje awarię.

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 
    } 

Odpowiedz

13

Nie można przejść do innych widoków nil stopki, ale można dać innych widokach stopce zerowy wysokość, który wynosi się do tego samego - nie pojawi się, ponieważ nie mają one wysokość.

Wykonaj collectionView:layout:referenceSizeForFooterInSection:, aby wszystkie stopki miały zerową wysokość, z wyjątkiem tej, którą chcesz zobaczyć.

Powiązane problemy