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:]: インデックス 0 が空の配列の境界を超えています'
これがどの配列であるかはわかりませんが、Google は何の助けも提供していません。何か案は?何かを接続するのを忘れたに違いないのですが、見つかりません。