2014-09-01 85 views
1

標題基本上是這麼說的。我正在嘗試使用在Xib文件中定義的UICollectionViewController創建集合視圖。我的UICollectionViewController使用自定義基類,當我嘗試訪問其viewDidLoad()中的collectionView時,collectionViewnil。代碼非常簡單。從Xib加載的UICollectionViewController中,collectionView無NIL

有人可以告訴我爲什麼collectionView是nil當從Xib加載UICollectionViewController以及如何解決這個問題?當我以編程方式實例化UICollectionViewController時,一切正常,但我更願意在Xib文件中創建UICollectionViewController

UPDATE:

enter image description here

+0

是否將Delegate&DataSource添加到XIB中的UICollectionView? – iBhavin 2014-09-01 09:26:43

+0

你需要像UICollectionView和XIB單元格一樣的教程嗎? – PREMKUMAR 2014-09-01 11:05:48

+0

@iBhavin查看上面的截圖。 collectionView連接到我的自定義UICollectionViewControl類的數據源和委託。這是自動設置的。但它不起作用。 – BadmintonCat 2014-09-01 11:42:33

回答

2

檢查您的廈門國際銀行委託的設置和代碼,請按照下列:

enter image description here

記數細胞:

[_collectionView的registerClass:[UICollectionViewCell class] forCellWithReuse標識符:Cell_Identifier]。

而且直接看到API文檔和演示: http://developer.apple.com/library/etc/redirect/xcode/ios/889e4b/samplecode/CollectionView-Simple/Introduction/Intro.html

新的截圖和代碼。

enter image description here

enter image description here

-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:      (UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section 

    { 
     UIEdgeInsets top = {10,25,15,25}; 
     return top; 
    } 

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section 
{ 
    CGSize size = {25,25}; 
    return size; 
} 

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section 
{ 
    CGSize size = {25,25}; 
    return size; 
} 

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return CGSizeMake(70, 70); 
} 

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section 
{ 
    return 30; 
} 

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section 
{ 
    return 30; 
} 
+0

我懷疑它與代表網點有關。但請參閱上面我現在附上的截圖。沒有像我的IB中任何地方列出的文件所有者這樣的東西(這是Xcode 6 beta 6)。 collectionView的數據源和委託自動設置爲GridViewCtrl(這是我自定義的UICollectionViewControl類)。我該怎麼辦? – BadmintonCat 2014-09-01 10:57:14

+0

除了上面的內容,UICollectionViewFlowLayout是必需的,新增加的是XIB和代碼設置,請參閱截圖和代碼方法。 – Allen 2014-09-02 02:38:50

0

嘗試here

示例使用Xib創建collectionView