2014-09-01 45 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