jak ukryć pasek stanu, gdy ekran powitalny pojawia się w telefonie iPhone?

85

Czy istnieje sposób na ukrycie paska stanu podczas wyświetlania ekranu powitalnego w telefonie iPhone, a następnie ponowne wyświetlenie go w aplikacji?

Rahul Vyas
źródło

Odpowiedzi:

191

Jestem prawie pewien, że jeśli twój plik Info.plist ma Status bar is initially hiddenustawioną wartość YES, to nie będzie on wyświetlany podczas ładowania aplikacji. Po załadowaniu aplikacji możesz ponownie wyświetlić pasek stanu za pomocą setStatusBarHidden:animated:metody UIApplication .

Dave DeLong
źródło
1
nie ma takiej opcji w info.plist. jest sposób na ręczne dodanie
Rahul Vyas
3
@Rahul wybierz ostatnią linię w pliku, a następnie kliknij przycisk plus na prawym końcu linii. Następnie wpisz to w sobie.
Dave DeLong,
2
Metodą ponownego pokazania paska stanu jest teraz setStatusBarHidden: withAnimation:
SargeATM
2
Jeśli chcesz dodać go ręcznie, możesz edytować plik plist w edytorze tekstu, takim jak BBEdit, i dodać linie: <key> UIStatusBarHidden </key> <true /> tuż nad linią </dict>. Lub w Xcode kliknij prawym przyciskiem myszy plik plist i wybierz Otwórz jako ... Kod źródłowy i edytuj go jako tekst.
JScarry,
9
„Po załadowaniu aplikacji możesz ponownie wyświetlić pasek stanu” Aby wyjaśnić, czy ktoś jest zdezorientowany, można bezpiecznie [[UIApplication sharedApplication] setStatusBarHidden:NO];włączyć - application: didFinishLaunchingWithOptions:
Ryan Romanchuk
48

Prawidłowy klucz w .plist to „UIStatusBarHidden” i zaznacz go po prawej stronie. Stanie się „Pasek stanu jest początkowo ukryty”, a następnie automatycznie. W mojej praktyce możesz kontrolować wyświetlanie / ukrywanie paska StatusBar w dowolnym miejscu, gdy hide:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];
[UIApplication sharedApplication].keyWindow.frame=CGRectMake(0, 0, 320, 480); //full screen.

kiedy pokaz:

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];
[UIApplication sharedApplication].keyWindow.frame=CGRectMake(0, 20, 320, 460); //move down 20px.

mam nadzieję, że to było dla ciebie pomocne.

Maks
źródło
Aby dynamicznie ustawić rozmiar CGRectMake na dowolny typ iPhone'a: [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO]; float width = ((UIScreen *)[UIScreen mainScreen]).bounds.size.width; float height = (((UIScreen *)[UIScreen mainScreen]).bounds.size.height - 20); [UIApplication sharedApplication].keyWindow.frame = CGRectMake(0, 20, width, height);
reinaldoluckman
UIApplication setStatusBarHidden:withAnimationoczekuje definicji typu NSInteger UIStatusBarAnimationdla drugiego argumentu, a nie typu BOOL. Zamiast tego NOużyjUIStatusBarAnimationNone
użytkownik
23

Widok -> Typ listy właściwości -> iPhone Info.plist. Teraz utwórz nowy element z zaznaczoną opcją „Pasek stanu jest początkowo ukryty”.

Jonathan Sterling
źródło
6

Idąc za odpowiedzią Dave'a, klucz „Pasek stanu jest początkowo ukryty” nie działał dla mnie pod iOS 4.3, ALE klucz „UIStatusBarHidden”, a następnie ustawienie jego typu na Boolean i zaznaczenie pola załatwiło sprawę.

http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//apple_ref/doc/uid/TP40009254-SW4

Ten artykuł deweloperów pozwolił mi na dostęp do kluczy Info.plist, a następnie wypracowanie odpowiedniego klucza do ukrycia nie było zbyt trudne.

Co ciekawe, „UIStatusBarStyle” musi używać nazwy wyliczenia jako łańcucha, aby działało.

Josh Peak
źródło
6

W przypadku Xcode 5 i nowszych możesz po prostu ustawić:

Wyświetl wygląd paska stanu opartego na kontrolerze na NIE

W swoim info.plist lub na karcie informacji w głównym projekcie.

Przykład ustawień informacji w xcode

Ian Jamieson
źródło
3

zapisz tę 1 linię w swojej głównej metodzie .m viewDidload

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];

lub wybierz plik info.plist z folderu plików pomocniczych projektu w obszarze roboczym

ustaw statusbarinitialyhidden na TAK

Usman
źródło
2

jest przestarzałe

setStatusBarHidden:(BOOL) animated:(BOOL) 

jest poprawne

setStatusBarHidden:(BOOL) withAnimation:(UIStatusBarAnimation)

UIStatusBarAnimation, która może być:

UIStatusBarAnimationNone lub UIStatusBarAnimationFade lub UIStatusBarAnimationSlide

Jonathan Lamim Antunes
źródło
1

To zadziałało dla mnie w info.plist:

"View controller-based status bar appearance"  -> set to NO
user2588945
źródło
1

Dodaj Status bar is initially hiddendo YESw info.plistpliku. To zadziałało dla mnie.

pasek stanu ukryty

Vinoth Vino
źródło
0

W przypadku edytorów XML ~ dodaj do pierwszego elementu podrzędnego

<key>UIStatusBarHidden</key>
<true/>
Paul Brewczyński
źródło