6
カスタムUICollectionViewLayout
サブクラスを使用する場合、cellForItemAtIndexPath:
はコールされません(ブレークポイントとデバッグ出力を使用してチェックしました)。cellForItemAtIndexPath:カスタムUICollectionViewLayoutサブクラス使用時に呼び出されない
- (void)viewDidLoad
{
[super viewDidLoad];
DMSGridLayout* gridLayout = [[DMSGridLayout alloc] init];
// UICollectionViewFlowLayout* flow = [[UICollectionViewFlowLayout alloc] init];
// [flow setItemSize:CGSizeMake(150, 150)];
UICollectionView *collection = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:gridLayout];
collection.delegate = self;
collection.dataSource = self;
self.collectionView = collection;
[self.view addSubview:self.collectionView];
[self.collectionView registerClass:[DMSGridCell class] forCellWithReuseIdentifier:@"CollectionCell"];
}
しかし、私が代わりに私のカスタムサブクラスのUICollectionViewFlowLayout
を使用するために上記のコードを変更すると、cellForItemAtIndexPath:
が呼び出されます。これは私がカスタムレイアウトを使用する方法です。
私のカスタムレイアウトのサブクラスのコードによってはcellForItemAtIndexPath
が呼び出されないことがありますか?
はい、可能です。そのレイアウトの一部を表示する必要があります。たとえば、レイアウトがコレクションビューのサイズやレイアウトオブジェクトのサイズを返さない場合、セルは決して作成されません。ドキュメントに記載されているすべてのメソッドを実装しましたか? – jrturton
ありがとうございました。私は細胞のフレーム起源を台無しにしました...それは可視領域の外でした。だから 'cellForItemAtIndexPath'が呼び出されていないのは間違いです。 – flather
さて、私は答えとして私のコメントを入れたので、これを閉じることができます。 – jrturton