我正在尝试将节页脚添加到 UICollectionView 并以我不理解的方式失败。
我正在像这样设置主单元格:
[collectionView registerClass:[PickerOpenCell class] forCellWithReuseIdentifier:cellIdentifier];
UINib *cellNib = [UINib nibWithNibName:@"PickerOpenCell" bundle:nil];
[collectionView registerNib:cellNib forCellWithReuseIdentifier:cellIdentifier];
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.scrollDirection = UICollectionViewScrollDirectionVertical;
flowLayout.itemSize = CGSizeMake(130, 50);
[collectionView setCollectionViewLayout:flowLayout];
xib 是 UICollectionViewCell 的子类,只包含一个 UILabel。这一切都很好。
现在我想添加节页脚,所以我添加了这个(与上面的代码交错,所以 setCollectionViewLayout 调用仍然是序列中的最后一个):
[collectionView registerClass:[PickerOpenFooter class] forCellWithReuseIdentifier:footerIdentifier];
UINib *footerNib = [UINib nibWithNibName:@"PickerOpenFooter" bundle:nil];
[collectionView registerNib:footerNib forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:footerIdentifier];
flowLayout.footerReferenceSize = CGSizeMake(130, 2);
这次的 xib 是 UICollectionReusableView 的子类,并包含一个视图(它的意思是部分之间的水平白线)。视图的大小为 130 x 2。
在我添加 footerReferenceSize 行的那一刻,应用程序在 setCollectionViewLayoutLine 上崩溃
由于未捕获的异常“NSRangeException”而终止应用程序,原因:“-[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array”
我不知道这可能是哪个数组,Google 也没有提供任何帮助。有任何想法吗?我一定是忘记连接什么东西了,但我找不到。