2013-06-14 14 views
28

w tym tygodniu pojawił się iOS 7 Beta, a ilekroć pojawi się aktualizacja, muszą one zawsze aktualizować aplikacje pod kątem niektórych błędów.Nowy status iOS 7 pozostawia zakres 20px w aplikacjach skompilowanych w Xcode 5

Cóż, zainstalowałem iOS 7 na moim iPhone i zasada aplikacji działa idealnie, potem zainstalowałem Xcode 5 (podgląd) i skompilowałem moje projekty, zdałem sobie sprawę, że nowy statusBar jest teraz całkowicie spokojny, twój kontroler widoku pojawi się jako jej tło .

W tym miejscu pojawia się problem, białe pasmo 20 pikseli na dole ekranu, ponieważ kontroler widoku wygrał miejsce, które było kiedyś stanBarem.

Jeśli naprawię ten problem w moich scenorysach, to wszystko w porządku, ale wtedy problem z systemem iOS 6 z powodu statusu 20px. Pasek nadal się wyświetla i ekran zostanie odcięty.

Myślałem, że prostym rozwiązaniem było sprawdzenie wersji iOS podczas uruchamiania i stworzenie storyboardu według każdego z nich. W moim projekcie mam 3 storyboardy, iPhone 3.5 ',' iPhone 4 'i' iPad '. Wkrótce trzeba utworzyć 3 kolejne storyboardy, dlatego, że te 20 pikseli.

To byłoby najlepsze rozwiązanie? Mam inną alternatywę?

Przepraszamy za długi tekst. Każda pomoc jest mile widziany!

+0

Użyj automatycznego układu lub przynajmniej sprężyn i rozpórek, a nie będziesz mieć takich problemów. –

+0

To naprawdę nie jest wersja beta, to jest podgląd programisty. – Abizern

+0

UINavigationController automatycznie zarządza luką 20px. Jeśli nie używasz UINavigationController, możesz obsłużyć lukę w kodzie. –

Odpowiedz

31

To właściwie poprawka na stary błąd. Wcześniejsze wersje Xcode nie obsłużyły poprawnie paska stanu, więc ludzie ustawili parametr Y okna na zero. Prawidłowa wartość to 20, pionowa grubość paska stanu.

Niejasno przypominam, że istnieje również parametr w Konstruktorze interfejsów, który pozwala określić, że pasek stanu ma być obecny, co spowoduje dodanie 20 do parametru Y. To też nie działa poprawnie.

Po naprawieniu błędu wszystkie starsze okna będą o 20 pikseli wyższe niż powinny (w zasadzie pod paskiem stanu).

Konsensus na forach od deweloperów Apple polega na tym, że Apple doda sposób na określenie zachowania systemu iOS6 i iOS7 w programie Interface Builder w celu rozwiązania tego problemu.

+1

Czy jest jakiś sposób, że aplikacja wygląda dobrze zarówno na iOS 6, jak i iOS 7. Potrzebujesz rozwiązania. Proszę pomóż. –

+0

Ankit można zawsze sprawdzić w środowisku wykonawczym dla wersji iOS, a następnie odpowiednio ustawić parametr y okna. –

+1

Nie sądzę, że to będzie właściwy wybór. Muszę wymyślić standardowe rozwiązanie, Nie jestem pewien, dlaczego Apple się tym nie zajął .. :( –

Powiązane problemy