Pasek nawigacji pojawia się nad widokami za pomocą nowego zestawu SDK iOS7

CGRect cgRect1 = [[UIScreen mainScreen] applicationFrame];


UISearchBar  *mySearchBar = [[UISearchBar alloc] 
               initWithFrame:CGRectMake(0, 0, cgRect.size.width, 40)];

mySearchBar.autoresizingMask = 
              UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight ;


UITableView  *myTableView = [[UITableView alloc] 
     initWithFrame:CGRectMake(0, 40, cgRect.size.width, cgRect.size.height-40)];

myTableView.autoresizingMask = 
               UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;


[self.view addSubview:mySearchBar];
[self.view addSubview:myTableView];

We wcześniejszych wersjach działa poprawnie. Pasek wyszukiwania pojawia się poniżejstatusbar i pasek nawigacyjny. Thetableview pojawia się poniżej paska wyszukiwania

Ale kiedy to uruchomięXcode 5 sdk iOS 7, pasek wyszukiwania nie jest widoczny (myślę, że jest umieszczony pod paskiem stanu i paskiem nawigacji), a także pasek nawigacji pojawia się nad widokiem tabeli.

Czy zostanie to naprawioneiOS 7 wersja stabilna ?

Czy jest to problem z moim kodowaniem?

Albo powinniśmy to załatwić, dodając y(y = statubar height + nav bar height) wartość dlaiOS 7 ?

Niedawno pobrałem Xcode 5 DP, aby przetestować moje aplikacje w iOS 7. Pierwszą rzeczą, którą zauważyłem i potwierdziłem, jest to, że granice mojego widoku nie zawsze zmieniają się na konto stanu i pasek nawigacji.

W viewDidLayoutSubviews wypisuję granice widoku:

{{0, 0}, {320, 568}}

Powoduje to, że moje treści pojawiają się poniżej paska nawigacji i paska stanu.

Wiem, że sam mógłbym obliczyć wysokość, pobierając wysokość głównego ekranu, odejmując wysokość paska stanu i wysokość paska nawigacyjnego, ale to wydaje się niepotrzebną dodatkową pracą.

Czy ktoś inny doświadczył tego problemu?

AKTUALIZACJA:

Znalazłem rozwiązanie tego konkretnego problemu. Ustaw przezroczystą właściwość paska nawigacji na NIE:

self.navigationController.navigationBar.translucent = NO;

To naprawi widok z ramek poniżej paska nawigacji i paska stanu.

Nie znalazłem jednak poprawki dla przypadku, gdy pasek nawigacyjny ma być przezroczysty. Na przykład, oglądając zdjęcie na pełnym ekranie, chcę, aby pasek nawigacyjny był przezroczysty, a widok był otoczony ramką. To działa, ale kiedy przełączam pokazując / ukrywając pasek nawigacyjny, doświadczyłem nawet dziwniejszych wyników. Pierwszy widok podrzędny (aUIScrollView) pobiera swoje granice Początek zmienia się za każdym razem.

questionAnswers(9)

yourAnswerToTheQuestion