2014-12-31 16 views
5

フッタービューを1つのセクションにのみ表示するにはどうすればよいですか?UICollectionView最後のセクションのみフッターを表示

私が知った通り、nilには、クラッシュを生成するので、他のセクションのフッタービューを非表示にすることはできません。

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 
    } 

答えて

13

あなたは他のフッタービューにnilを渡すことはできませんが、他のフッタービューに同じことになるゼロ高さを与えることができます - 彼らは何の高さを持っていないので、彼らは、表示されません。

collectionView:layout:referenceSizeForFooterInSection:を実装して、実際に見たいもの以外のすべてのフッターにゼロの高さを指定します。

関連する問題