Ho un UICollectionViewController
utilizzando un UICollectionViewFlowLayout
dove il mio itemSize
è la dimensione dello UICollectionView
. Fondamentalmente, questo è un layout di linee di celle in cui ogni cella è a schermo intero e scorre orizzontalmente.Perché UICollectionView registra un errore quando le celle sono a schermo intero?
Nel mio UICollectionViewFlowLayout
sottoclasse, ho ignorato prepareLayout
come segue:
- (void)prepareLayout {
self.itemSize = self.collectionView.frame.size;
self.scrollDirection = UICollectionViewScrollDirectionHorizontal;
self.collectionView.pagingEnabled = YES;
self.minimumLineSpacing = 0.0;
self.minimumInteritemSpacing = 0.0;
self.sectionInset = UIEdgeInsetsZero;
self.footerReferenceSize = CGSizeZero;
self.headerReferenceSize = CGSizeZero;
}
Il UICollectionViewController
è molto semplice ritorno 10 articoli in una sezione. Ho incluso uno sample project on GitHub per ulteriori dettagli.
Tutto sembra impostato correttamente. Sembra proprio nel simulatore e sul dispositivo, ma, quando viene visualizzata la vista raccolta, v'è un errore connesso alla console:
the behavior of the UICollectionViewFlowLayout is not defined because: the item height must be less that the height of the UICollectionView minus the section insets top and bottom values.
Si noti anche che la vista del regolatore di raccolta nel mio esempio si trova in un controller di navigazione e mentre questo non sembra particolarmente necessario nell'esempio, nel mio caso reale ho bisogno della vista raccolta in un controller di navigazione.
bello - questo ha risolto il mio problema! – Ronaldoh1
Avrei potuto farlo "su" due volte se potessi. Inoltre, NOTA che è possibile modificare 'automaticamenteAdjustsScrollViewInsets' direttamente in Interface Builder. – nikans
Grazie! Ha funzionato :) –