Tuesday 8 August 2017

Edgesforextendedlayout Scrollview Example


A partire dal iOS7, i controller di vista utilizzare il layout a schermo intero per impostazione predefinita. Allo stesso tempo, si ha un maggiore controllo sul modo in cui espone le sue opinioni, e questo è fatto con quelle proprietà: In sostanza, con questa proprietà si imposta cui lati della vostra vista può essere esteso per coprire l'intero schermo. Immaginate che si preme un UIViewController in un UINavigationController. quando la vista di quel controller della vista è disposto, 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 a riempire l'intero schermo. Vediamo con un esempio: Qui non si imposta il valore di edgesForExtendedLayout. quindi il valore di default è preso (UIRectEdgeAll), quindi la vista si estende il suo layout a riempire l'intero schermo. Questo è il risultato: Come si può vedere, lo sfondo rosso si estende dietro la barra di navigazione e la barra di stato. Ora, si sta per impostare il valore di UIRectEdgeNone. così si sta dicendo il controller della vista di non estendere il fine di coprire lo schermo: Questa proprietà viene utilizzata quando la vista è un UIScrollView o simile, come un UITableView. Volete che il vostro tavolo per iniziare a dove finisce la barra di navigazione, perché è solito vedere tutto il contenuto, se non, ma allo stesso tempo che si desidera il vostro tavolo per coprire l'intero schermo durante lo scorrimento. In questo caso, l'impostazione edgesForExtendedLayout None non funzionerà perché il vostro tavolo inizierà a scorrere in cui le estremità della barra di navigazione e non andrà dietro di esso. Qui è dove questa proprietà è utile, se si lascia il controller della vista regolare automaticamente i riquadri (impostazione di questa proprietà su YES, anche il valore di default) si aggiungerà inserto alla parte superiore della tabella, in modo che il tavolo avrà inizio in cui la navigazione bar finisce, ma il rotolo coprirà l'intero schermo. Questo è quando è impostata su NO: e sì (per impostazione predefinita): in entrambi i casi, i rotoli tavolo dietro la barra di navigazione, ma nel secondo caso (SI), si inizierà da sotto la barra di navigazione. Questo valore è solo un'aggiunta alle precedenti. Se la barra di stato è opaco, il punto di vista non sarà estesa per includere la barra di stato troppo, a meno che questo parametro è SI. Quindi, se si estende l'immagine per coprire la barra di navigazione (edgesForExtendedLayout a UIRectEdgeAll) e il parametro è NO (default) è solito copre la barra di stato se il suo opaco. Se qualcosa non è chiaro, scrivere un commento e risposta Ill ad esso. Come iOS sa cosa UIScrollView usare iOS afferra la prima visualizzazione secondaria nelle viewcontrollers vista, quindi quello di indice 0, e se la sua una sottoclasse di UIScrollView applica quindi le proprietà spiegate ad esso. Naturalmente, questo significa che UITableViewController funziona di default (dato che il UITableView è la prima vista).Mentre Clafous risposta è certamente corretto, se non avete bisogno di trasparenza e desidera iniziare sotto la barra di navigazione, il modo davvero corretto è quello di cambiare il comportamento del ViewController modo che si inserisce il contenuto in modo corretto. Per fare questo, si hanno due opzioni: 1) Supponendo di avere Storyboard, andare a ViewController Attributi e Disattiva in top bar 2) Supponendo che si sta tutto tramite il codice, si vuole cercare seguenti - edgesForExtendedLayout. e extendedLayoutIncludesOpaqueBars. C'è grande risposta per questo già così così non lo vorrei coprire qui.

No comments:

Post a Comment