collectionView在从Xib加载的UICollectionViewController中为nil

时间:2014-09-01 08:37:11

标签: ios objective-c iphone cocoa-touch swift

标题基本上都说明了一切。我尝试使用在Xib文件中定义的UICollectionViewController创建集合视图。我的UICollectionViewController使用自定义基类,当我尝试在其collectionView中访问viewDidLoad()时,collectionViewnil。代码非常简单。

有人告诉我为什么在从Xib加载nil时collectionView是UICollectionViewController以及如何解决这个问题?当我以编程方式实例化UICollectionViewController时,一切正常,但我更喜欢在Xib文件中创建UICollectionViewController

更新

enter image description here

2 个答案:

答案 0 :(得分:2)

检查您的Xib委托设置和代码,请按照以下步骤操作:

enter image description here

注册单元格:

[_ collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier: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;
}

答案 1 :(得分:0)

试试here

示例使用Xib创建collectionView