标题基本上都说明了一切。我尝试使用在Xib文件中定义的UICollectionViewController
创建集合视图。我的UICollectionViewController
使用自定义基类,当我尝试在其collectionView
中访问viewDidLoad()
时,collectionView
为nil
。代码非常简单。
有人告诉我为什么在从Xib加载nil
时collectionView是UICollectionViewController
以及如何解决这个问题?当我以编程方式实例化UICollectionViewController
时,一切正常,但我更喜欢在Xib文件中创建UICollectionViewController
。
更新
答案 0 :(得分:2)
检查您的Xib委托设置和代码,请按照以下步骤操作:
注册单元格:
[_ collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:Cell_Identifier];
直接查看API文档和演示: http://developer.apple.com/library/etc/redirect/xcode/ios/889e4b/samplecode/CollectionView-Simple/Introduction/Intro.html
新截图和代码。
-(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;
}
答案 1 :(得分:0)
试试here。
示例使用Xib创建collectionView