Quando si utilizza la sottoclasse personalizzata , non viene chiamato cellForItemAtIndexPath:
(ho controllato utilizzando i breakpoint e l'output di debug). Questo è come io uso il layout personalizzato:cellForItemAtIndexPath: non viene chiamato quando si utilizza la sottoclasse UICollectionViewLayout personalizzata
- (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"];
}
Ma quando cambio il codice qui sopra per usare UICollectionViewFlowLayout
invece del mio sottoclasse personalizzata, cellForItemAtIndexPath:
si chiama.
Potrebbe essere che un codice dalla sottoclasse di layout personalizzato impedisca di chiamare cellForItemAtIndexPath
?
Sì, potrebbe. Dovrai mostrarne alcuni - se il layout non restituisce alcuna dimensione per la vista di raccolta, ad esempio, o qualsiasi dimensione per gli oggetti di layout, allora una cella non verrà mai creata. Hai implementato tutti i metodi come descritto nella documentazione? – jrturton
Grazie mille. Ho incasinato l'origine del fotogramma delle celle ... era al di fuori dell'area visibile. Quindi era corretto che 'cellForItemAtIndexPath' non fosse chiamato. – flather
Ok, ho inserito il mio commento come risposta, quindi puoi chiuderlo. – jrturton