2013-09-24 15 views
5

Mam UINavigationController z UIViewController wykazujące pasek nawigacji.iOS 7 UIViewController (z paskiem nawigacji) nie wstawia UIScrollView

W szczególności ustawiłem [self setAutomaticallyAdjustsScrollViewInsets:YES];, chociaż powinno to być domyślnie YES.

dodać UIScrollView:

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

Jednak UIScrollView za contentInset jest {0, 0, 0, 0}, więc zastanawiam się, dlaczego nie odziedziczą wstawka treści z kontrolera widoku jak wskazuje dokumentacja to zrobi.

Jeśli dodam podstronę do widoku przewijania i ustawię ich jako self.scrollView.contentInset.top, nie będą one wyświetlane pod paskiem nawigacji, co jest tym, czego się spodziewam.

Co ja tu robię źle? Działa dobrze, jeśli zaczynasz od UITableViewController, ponieważ poprawnie dziedziczy on contentInset z kontrolera widoku.

Dzięki!

+0

contentInset (i contentOffset) regulacji będą widoczne po wgląd na ekranie. Czy możesz potwierdzić, że nadal nie są ustawione w 'viewDidAppear' lub nowszym? –

+0

Ach, może to być tutaj problem, który próbuję ustawić w 'loadView' – runmad

+1

Ah, zdecydowanie nie poleciłbym robić więcej w' loadView' niż tworzyć i przypisywać coś do 'self.view'. –

Odpowiedz

-1
self.view = self.scrollView; 

Działa dobrze dla mnie. Testowane UIWebView:

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

Dostosowuje granice widoku przewijania, a nie wstawek treści.

+0

Nie. Chcę, aby treść pojawiała się pod paskiem nawigacji itp. Nie dostaniesz tego, jeśli ustawisz ograniczenia. – runmad

+0

Dlaczego -1? Jeśli spojrzysz na wpływ scrollView na setAutomaticallyAdjustsScrollViewInsets: YES, zobaczysz, że granice są zmieniane w zależności od obecności paska nawigacyjnego i/lub paska stanu. Na przykład ukryj pasek stanu, a zobaczysz, że wartość bounds.origin.y zmieniła się o 20. Jeśli NIE, to granice nie są zmieniane. – pickwick

+0

Zawartość wewnątrz UIScrollView nie przewija poza granicami. Ale przewija się poza wstawką. Chcę, aby treść przewijała się poza granice. – runmad