Wie verstecke ich die Statusleiste, wenn der Begrüßungsbildschirm auf dem iPhone angezeigt wird?

85

Gibt es eine Möglichkeit, die Statusleiste auszublenden, wenn der Begrüßungsbildschirm auf dem iPhone angezeigt und dann in der Anwendung erneut angezeigt wird?

Rahul Vyas
quelle

Antworten:

191

Ich bin mir ziemlich sicher, dass Ihre Info.plist-Datei beim Laden Ihrer Anwendung nicht angezeigt wird, wenn sie auf den Status bar is initially hiddenWert gesetzt YESist. Sobald Ihre Anwendung geladen wurde, können Sie die Statusleiste mithilfe der UIApplication- setStatusBarHidden:animated:Methode erneut anzeigen .

Dave DeLong
quelle
1
Es gibt keine solche Option in info.plist.ist es eine Möglichkeit, sie manuell hinzuzufügen
Rahul Vyas
3
@Rahul wähle die letzte Zeile in der Datei aus und klicke dann auf das Pluszeichen am rechten Ende der Zeile. Dann tippe es selbst ein.
Dave DeLong
2
Die Methode, die Statusleiste erneut anzuzeigen, lautet jetzt setStatusBarHidden: withAnimation:
SargeATM
2
Wenn Sie es manuell hinzufügen möchten, können Sie die Liste in einem Texteditor wie BBEdit bearbeiten und die folgenden Zeilen hinzufügen: <key> UIStatusBarHidden </ key> <true /> direkt über der Zeile </ dict>. Oder klicken Sie in Xcode mit der rechten Maustaste auf die Liste und wählen Sie Öffnen als ... Quellcode und bearbeiten Sie ihn als Text.
JScarry
9
"Sobald Ihre Anwendung geladen wurde, können Sie die Statusleiste erneut anzeigen." Nur um zu verdeutlichen, ob jemand verwirrt ist, können Sie sie sicher [[UIApplication sharedApplication] setStatusBarHidden:NO];aktivieren. - Anwendung: didFinishLaunchingWithOptions:
Ryan Romanchuk
48

Der richtige Schlüssel in .plist ist "UIStatusBarHidden" und wird rechts angekreuzt. Es wird dann automatisch "Statusleiste ist anfänglich ausgeblendet". In meiner Praxis können Sie das Ein- / Ausblenden der Statusleiste überall steuern, indem Sie Folgendes ausblenden:

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

wenn zeigen:

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

Ich hoffe, das war hilfreich für Sie.

Max
quelle
So stellen Sie die Größe des CGRectMake dynamisch auf jeden iPhone-Typ ein: [[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:withAnimationerwartet UIStatusBarAnimationfür das zweite Argument ein NSInteger-Typedef , kein BOOL. NOVerwenden Sie stattdessenUIStatusBarAnimationNone
Benutzer
23

Ansicht -> Eigenschaftslistentyp -> iPhone Info.plist. Erstellen Sie jetzt ein neues Element mit aktiviertem Kontrollkästchen "Statusleiste ist anfangs ausgeblendet".

Jonathan Sterling
quelle
6

Nach Daves Antwort funktionierte der Schlüssel "Statusleiste ist anfangs ausgeblendet" unter iOS 4.3 bei mir nicht, ABER der Schlüssel "UIStatusBarHidden" und das Setzen des Typs auf Boolean und das Aktivieren des Kontrollkästchens haben den Trick getan.

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

Dieser Entwicklerartikel brachte mich auf die Info.plist-Schlüssel und erarbeitete dann den entsprechenden Schlüssel zum Ausblenden, es war nicht allzu schwer.

Interessanterweise muss der "UIStatusBarStyle" den Aufzählungsnamen als Zeichenfolge verwenden, damit er funktioniert.

Josh Peak
quelle
6

Für Xcode 5 und höher können Sie einfach Folgendes einstellen:

Zeigen Sie das Controller-basierte Statusleisten-Erscheinungsbild auf NO an

In Ihrer info.plist oder auf der Registerkarte info in Ihrem Hauptprojekt.

Beispiel für Infoeinstellungen in xcode

Ian Jamieson
quelle
3

Schreiben Sie diese 1 Zeile in Ihre Hauptmethode .m viewDidload

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

oder wählen Sie die Datei info.plist aus Ihrem Projektordner für unterstützende Dateien im Arbeitsbereich aus

Setzen Sie statusbarinitialyhidden auf YES

Usman
quelle
2

ist veraltet

setStatusBarHidden:(BOOL) animated:(BOOL) 

ist das richtige

setStatusBarHidden:(BOOL) withAnimation:(UIStatusBarAnimation)

UIStatusBarAnimation, die sein kann:

UIStatusBarAnimationNone oder UIStatusBarAnimationFade oder UIStatusBarAnimationSlide

Jonathan Lamim Antunes
quelle
1

Das hat bei mir in der info.plist geklappt:

"View controller-based status bar appearance"  -> set to NO
user2588945
quelle
1

In Status bar is initially hiddenzu YESin der info.plistDatei. Das hat bei mir funktioniert.

Statusleiste ausgeblendet

Vinoth Vino
quelle
0

Für XML-Editoren ~ zum ersten untergeordneten Element von hinzufügen

<key>UIStatusBarHidden</key>
<true/>
Paul Brewczynski
quelle