2013-09-24 11 views
5

Ho un UINavigationController con un UIViewController che mostra una barra di navigazione.iOS 7 UIViewController (con barra di navigazione) non inserito UIScrollView

Ho impostato in modo specifico [self setAutomaticallyAdjustsScrollViewInsets:YES];, anche se per impostazione predefinita dovrebbe essere YES.

aggiungo un'UIScrollView:

self.scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds]; 
[self.view addSubview:self.scrollView]; 

Tuttavia, contentInset del UIScrollView è {0, 0, 0, 0}, quindi mi chiedo il motivo per cui non eredita l'inserto contenuto dal controller della vista come la documentazione afferma che sarebbe stato.

Se aggiungo il subview alla vista di scorrimento e impostiamo la loro Y come self.scrollView.contentInset.top, non vengono visualizzati sotto la barra di navigazione, che è quello che mi aspetto.

Cosa sto facendo di sbagliato qui? Funziona bene se si avvia con un UITableViewController poiché eredita correttamente il contentInset dal controller di visualizzazione.

Grazie!

+0

La regolazione contentInset (e contentOffset) apparirà solo dopo la vista è sullo schermo. Puoi confermare che non sono ancora impostati in "viewDidAppear" o versioni successive? –

+0

Ah, potrebbe esserci un problema qui, che sto cercando di impostarlo in 'loadView' – runmad

+1

Ah, sicuramente non consiglierei di fare di più in' loadView' piuttosto che creare e assegnare qualcosa a 'self.view'. –

risposta

-1
self.view = self.scrollView; 

Funziona bene per me. testati con UIWebView:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.view = self.webView; 
} 
-1

Regola i limiti della vista di scorrimento, non i margini di contenuto.

+0

No. Voglio che il contenuto appaia sotto la barra di navigazione, ecc. Non ottieni questo se modifichi i limiti. – runmad

+0

Perché il -1? Se osservi come la scrollView è influenzata quando setAutomaticallyAdjustsScrollViewInsets: YES, vedrai che i limiti sono cambiati a seconda delle presenze di una barra di navigazione e/o di una barra di stato. Ad esempio, nascondi la barra di stato e vedrai bounds.origin.y cambiato di 20. Se è NO, i limiti non vengono modificati. – pickwick

+0

Il contenuto di UIScrollView non scorre oltre i limiti. Ma scorre oltre l'inserto. Voglio che il contenuto scorra oltre i limiti. – runmad

Problemi correlati