2014-11-12 9 views
6

Ho letto sui forum di questa proprietà, principalmente le persone che hanno impostato questa proprietà su falso o lo hanno deselezionato nello storyboard. L'ho fatto da solo perché quando ho un controller UINavigation incorporato in una vista, la barra in alto spinge il mio UITextView verso il basso in modo che il testo inizi a modificarlo nella parte inferiore.Per quanto riguarda la proprietà estensimetrico in UIViewController?

Deselezionare i bordi estesi sotto le barre superiori nella StoryBoard in UIViewController risolve il mio problema ma non capisco cosa sta succedendo.

Qualcuno può dare una spiegazione su quale sia lo scopo di questa proprietà, vorrei saperne di più.

risposta

5

Per impostazione predefinita, le viste di UITableViewController sono automaticamente inserite in iOS7 in modo che non vengano avviate sotto la barra di navigazione/barra di stato. Questo è il controller tramite l'impostazione "Regola impostazioni scorrimento vista" nella scheda Impostazioni attributi di UITableViewController in Interface Builder o tramite il metodo setAutomaticallyAdjustsScrollViewInsets: di UIViewController.

Per i contenuti di UIViewController, se non si desidera che il contenuto della vista si estenda sotto le barre in alto/in basso, è possibile utilizzare le estensioni bordi sotto le barre in alto/sotto le barre in basso in Interface Builder. Questo è accessibile tramite la proprietà edgesForExtendedLayout.

Riferimento:Why does UIViewController extend under UINavigationBar, while UITableViewController doesn't?

+0

si Fare pensa che la ragione per fare questo è assicurarsi che gli elementi dell'interfaccia utente non siano sotto la barra di navigazione? – 3366784

1

Il edgesForExtendedLayout proprietà, insieme alla proprietà extendedLayoutIncludesOpaqueBars, determina se o no vista viste controllori Underlap barre superiore e inferiore (barra di navigazione, della barra degli strumenti, ecc)

+0

Quindi questo spiega perché un UITextView che non è completamente impostato sotto la barra di navigazione non inizia la modifica in alto? sembra che UITextView sia stato abbassato perché ha assunto che fosse sotto la barra di navigazione. – 3366784

+0

Bene, con qualcosa come una vista di testo o una vista tabella, questa è una vista di scorrimento. Quindi c'è una complicazione in più. Può estendersi sotto la barra di navigazione, ma poi può compensare utilizzando il riquadro contenuto (e l'indicatore di scorrimento). Quindi entrano in gioco altre due proprietà. Inoltre, se si tratta della vista di livello superiore, è disponibile un controller di visualizzazione che consente di impostare il riquadro di contenuto automaticamente _automaticamente_ per compensare. – matt

Problemi correlati