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 są zmieniane, aby uwzględnić pasek stanu i pasek nawigacji.
W viewDidLayoutSubviews
drukuję granice widoku:
{{0, 0}, {320, 568}}
Powoduje to, że moja treść pojawia się poniżej paska nawigacyjnego i paska stanu.
Wiem, że mógłbym samodzielnie wyliczyć wysokość, uzyskując wysokość ekranu głównego, odejmując wysokość paska stanu i wysokość paska nawigacji, ale wydaje się to niepotrzebną dodatkową pracą.
Jak mogę rozwiązać ten problem?
Aktualizacja:
Znalazłem rozwiązanie tego konkretnego problemu. Ustaw półprzezroczystą właściwość paska nawigacji na NIE:
self.navigationController.navigationBar.translucent = NO;
Naprawi to kadrowanie widoku pod paskiem nawigacyjnym i paskiem stanu.
Jednak nie znalazłem rozwiązania dla przypadku, gdy chcesz, aby pasek nawigacji był półprzezroczysty. Na przykład, oglądając zdjęcie na pełnym ekranie, chciałbym, aby pasek nawigacji był przezroczysty, a widok, który ma być w nim obramowany. To działa, ale kiedy przełączam wyświetlanie / ukrywanie paska nawigacji, zauważyłem nawet dziwniejsze wyniki. Pierwszy widok podrzędny (UIScrollView) zmienia swoje granice i pochodzenie za każdym razem.