When using my custom UICollectionViewLayout
subclass, cellForItemAtIndexPath:
is not called (I checked using breakpoints and debug output). This is how i use the custom layout:
- (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"];
}
But when i change the above code to use UICollectionViewFlowLayout
instead of my custom subclass, cellForItemAtIndexPath:
is called.
Could it be that some code from my custom layout subclass prevents cellForItemAtIndexPath
from being called?
If the layout doesn't return any size for the collection view, for example, or any size for the layout objects, then a cell will never be created. Also, the frames in the layout objects have to be within the visible area of the collection view.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With