2013-07-26 60 views
2

我試圖頁腳添加到UICollectionView。UICollectionView頁腳

以下是我的代碼,

UICollectionView通過IB

添加

在viewDidLoad中我註冊頁腳,

[mCollectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"footer"]; 

並實現了以下方法

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath 
{ 
    UICollectionReusableView *reusableview = nil; 

    if (kind == UICollectionElementKindSectionFooter) { 
     UICollectionReusableView *headerView = [mCollectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"footer" forIndexPath:indexPath]; 

     [headerView addSubview:mFooterView]; 
     reusableview = headerView; 
    } 
    return reusableview; 
} 

但我的應用程序繼續崩潰,下面是日誌,

***在聲明失敗 - [UICollectionView _dequeueReusableViewOfKind:withIdentifier:forIndexPath:],/SourceCache/UIKit/UIKit-2380.17/UICollectionView.m:2249

任何幫助理解。

謝謝。

回答

9

在你的代碼你爲什麼dequeing一個標題視圖,並添加頁腳呢?

正常此方法的實現是:

- (UICollectionReusableView *)collectionView:(UICollectionView *)theCollectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)theIndexPath 
{ 

    UICollectionReusableView *theView; 

    if(kind == UICollectionElementKindSectionHeader) 
    { 
     theView = [theCollectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header" forIndexPath:theIndexPath]; 
    } else { 
     theView = [theCollectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"footer" forIndexPath:theIndexPath]; 
    } 

    return theView; 
} 
+0

是的,我也做了同樣的事情,它爲我!我將標誌着你的答案是正確的 –