2014-10-02 28 views
6

I zostały dodanie konsolę on top paska stanu:Okno z UIWindowLevelStatusBar + 1 ukrywa pasek stanu na iOS 8

enter image description here

Zostało to działa doskonale ustawiając jego windowLevel do UIWindowLevelStatusBar + 1 do iOS 7.x (zrzut ekranu).

W systemie iOS 8 ten sam kod powoduje zniknięcie paska stanu i przesuwa paski nawigacyjne w górę. Wypróbowałem kilka różnych poziomów okien bez szczęścia.

Korzystam z biblioteki przy wielu projektach i zauważyłem, że pasek statusu pojawia się, gdy wyświetlany jest również "PopUpWindow" poziomu UIWindowLevelAlert. Jednym z możliwych rozwiązań byłoby dodanie fałszywego okna, ale byłoby to dość brudne.

+0

Jeśli ustawisz poziom na "StatusBar" + 1, powinien on obejmować pasek stanu. W szczególności ustawiasz poziom wyżej niż pasek stanu. – rmaddy

+0

Tak. Właśnie to zamierzam zrobić. Pasek stanu nadal tam jest, masz obszar, w którym nadal możesz "dotknij, aby przewinąć do góry", a ważniejsze układy i paski nawigacji zostaną poprawnie ustawione. To jednak zepsuło się z iOS 8. – Rivera

Odpowiedz

6

Spróbuj wprowadzić metodę -prefersStatusBarHidden na kontrolerze widoku głównego w swoim interfejsie użytkownika. Pracował dla mnie.

+0

Cóż, zadziałało dzięki! Więcej niż nieoczekiwane, ponieważ domyślna implementacja zwraca już wartość "NO". – Rivera

+0

Nie działa dla mnie w systemie iOS9, nawet jeśli zarówno klucz, jak i statusBar + 1 okna mają preferowaną pozycję rootViewController "StatusBarHidden", aby zwrócić NO – burax

+0

Aa i ja to odbieram. Moim problemem było czarne tło pod paskiem stanu. Dodanie nowego okna zmieniło kolor paska stanu na czarny, tak jakby zniknął. Wdrożenie 'preferredStatusBarStyle' naprawiło to. – burax