2014-03-02 59 views
3

我試圖將標題添加到自定義流佈局類。使用自定義流佈局將集合視圖中的標題添加到標題

我知道如何將它添加到故事板中,如果流佈局不是通過簡單地檢查節標題框來定製的,但只要我使用自定義類,該選項不再可用。

大多數情況下,我在佈局屬性的概念化以及如何實現它們時遇到了困難。 另外我不確定我是否應該將方法放入我的數據源,視圖控制器或流程佈局子類,所以請具體說明這些方法。

Ray Wenderlich教程僅顯示故事板方法。

+0

「UISearchBar」作爲自定義流佈局的標題是什麼意思?流佈局用於調整和修改'UICollectionView'中'UICollectionViewCell'的流。另外,你是否試圖爲每個'UICollectionViewCell'添加一個'UISearchBar'?也很有可能你想要做的是最好的編程方式。 – entire

+0

我試圖添加一個搜索欄到集合視圖的頂部。我想將它作爲標題添加的原因是,它使用集合視圖向上滾動,而不是在集合視圖在其下滾動時保持靜態。我知道這是一個相當複雜的問題,可能會有更好的方法。讓我知道如果你想到一個 – fragle

+0

這是故事板更痛苦,但容易編程。我將在回答部分 – entire

回答

0

使用UICollectionReusableView創建HeadeView並調用以下代理。

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath 
    { 
     if (kind == UICollectionElementKindSectionHeader) { 
      HeaderView *headerView = nil; 
     headerView = (ProductListingHeaderView*)[collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView" forIndexPath:indexPath]; 

     if (headerView == nil) { 
      headerView=[[[NSBundle mainBundle] loadNibNamed:@"HeaderView" owner:self options:nil] objectAtIndex:0]; 
     } 
    return headerView; 

     } 
     return nil; 
    } 

    -(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{ 
     if (![collectionView numberOfItemsInSection:section]) { 
      return CGSizeZero; 
     } 
     return CGSizeMake([(UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout headerReferenceSize].width, searchBarHeight); 

    } 
相關問題