2015-12-09 9 views
10

Ho UIViewController che estende UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout.UICollectionView non funziona quando extendedLayoutIncludesOpaqueBars è impostato su true

metodi
override func viewDidLoad() { 
    super.viewDidLoad() 
    collectionView.delegate = self 
    collectionView.dataSource = self 
    self.extendedLayoutIncludesOpaqueBars = true 

} 

UICollectionviewDelegate e DataSource non sono chiamati, così UICollectionview sembra vuoto. Anche se chiamo i dati di ricarica, i metodi DataSource non sono ancora stati richiamati.

Quando elimino l'ultima riga, tutto funziona correttamente eccetto che c'è spazio sotto viewController.

risposta

0

edgesForExtendedLayout

In sostanza, con questa proprietà è possibile impostare manualmente quali lati della vostra vista può essere esteso a coprire l'intero schermo. Immagina di spingere un UIViewController in un UINavigationController, quando la vista di quel controller di visualizzazione è disposta, inizierà dove finisce la barra di navigazione , ma questa proprietà imposterà quali lati della vista (in alto a sinistra, in basso , a destra) può essere esteso per riempire l'intero schermo.

è necessario impostare una di queste due

self.edgesForExtendedLayout = UIRectEdgeNone; 
self.automaticallyAdjustsScrollViewInsets = NO; 

O

self.edgesForExtendedLayout = UIRectEdgeNone; 
self.extendedLayoutIncludesOpaqueBars = YES; 

può essere che vi aiuterà.

+0

Ho già provato questo, ma non ha aiutato. solo extendedLayoutIncludesOpaqueBars = false rimuove lo spazio. –