Quindi voglio nascondere la barra di navigazione quando si scorre verso il basso e riportarla indietro durante lo scorrimento verso l'alto. Nascondere funziona perfettamente conhidesBarsOnSwipe non mostra mai di nuovo la barra di navigazione quando si scorre su
self.navigationController?.hidesBarsOnSwipe = true
Ma mi aspetto che venga mostrato di nuovo quando si scorre. Ho realizzato un progetto di test in cui il controller di visualizzazione ha solo un singolo UICollectionView che copre l'intero schermo. Poi mostra la barra di navigazione è dimostrato ancora una volta come previsto fino a quando ho aggiungere questa riga alle (cellule aggiungendo alla vista di raccolta) viewDidLoad:
self.collectionView.delegate = self
E questo è ciò che l'intero controller della vista assomiglia
class ViewController: UIViewController,UICollectionViewDataSource, UICollectionViewDelegate {
@IBOutlet var collectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
self.collectionView.dataSource = self
self.collectionView.delegate = self
self.collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "Test")
self.navigationController?.hidesBarsOnSwipe = true
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 3
}
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
return collectionView.dequeueReusableCellWithReuseIdentifier("Test", forIndexPath: indexPath) as UICollectionViewCell
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
return CGSizeMake(300, 300)
}
}
Allora perché mostrare la barra di navigazione smette di funzionare quando aggiungo le celle alla mia vista collezione?
Questa era l'unica soluzione che ho trovato che funzionasse. Il mio caso era un UITableViewController incorporato in un UIViewController. –
Wow, ben chiazzato! Comportamento molto strano ... – Martin
Penso che la risposta significasse "Top Layout Guide.Bottom" invece di "Top Layout Guide.Top" – pshah