444 Stimmen

Statusleiste und Navigationsleiste erscheinen über den Grenzen meiner Ansicht in iOS 7

Ich habe kürzlich Xcode 5 DP heruntergeladen, um meine Apps in iOS 7 zu testen. Das erste, was mir aufgefallen ist und bestätigt habe, ist, dass der Rahmen meiner Ansicht nicht immer für die Statusleiste und die Navigationsleiste angepasst wird.

In viewDidLayoutSubviews drucke ich den Rahmen der Ansicht:

{{0, 0}, {320, 568}}

Dadurch erscheint mein Inhalt unterhalb der Navigationsleiste und der Statusleiste.

Ich weiß, dass ich die Höhe selbst berücksichtigen könnte, indem ich die Höhe des Hauptbildschirms bekomme, die Höhe der Statusleiste und die Höhe der Navigationsleiste abziehe, aber das scheint wie unnötige zusätzliche Arbeit.

Wie kann ich dieses Problem beheben?

Update:

Ich habe eine Lösung für dieses spezifische Problem gefunden. Setze die Transluzenz-Eigenschaft der Navigationsleiste auf NEIN:

self.navigationController.navigationBar.translucent = NO;

Dadurch wird verhindert, dass die Ansicht unterhalb der Navigationsleiste und der Statusleiste gerahmt wird.

Ich habe jedoch keine Lösung für den Fall gefunden, wenn Sie möchten, dass die Navigationsleiste transluzent ist. Zum Beispiel, wenn Sie ein Foto im Vollbildmodus anzeigen, möchte ich die Navigationsleiste transluzent haben und die Ansicht darunter gerahmt haben. Das funktioniert, aber wenn ich die Anzeige der Navigationsleiste ein- und ausschalte, habe ich noch seltsamere Ergebnisse erlebt. Der erste Unterblick (ein UIScrollView) ändert jedes Mal seinen Ursprung.

1voto

Alexej W. Punkte 31

Ich hatte das gleiche Problem mit meiner App auf iPads (armv7, armv7s, amr64), nur wenn ich ein anderes UIViewController präsentiere und nach dem Schließen geht die Navigationsleiste unter die Statusleiste ... Ich habe viel Zeit damit verbracht, eine Lösung dafür zu finden. Ich verwende Storyboard und im InterfaceBuilder für das UIViewController, das schrecklich aussieht, habe ich die Präsentation von Vollbild -> Aktueller Kontext gesetzt und damit dieses Problem behoben. Es funktioniert in meiner App nur für iPads => iOS 8.0 (Test mit iOS 8.1) und für iPads mit iOS 7.1 funktioniert es nicht!! Screenshot anzeigen

1voto

gdm Punkte 7271

Für mich ist die einfachste Lösung, zwei Schlüssel in die plist hinzuzufügen

Bildbeschreibung hier eingeben

1voto

Zen Of Kursat Punkte 2473

Fügen Sie den Schlüssel "View Controller-basierte Statusleistenanzeige" aus der Dropdown-Liste als Zeile in info.plist hinzu. Etwas wie dies:

Bildbeschreibung hier eingeben

0voto

chandrika Punkte 394

Schritte zum Ausblenden der Statusleiste in iOS 7:

1. Gehen Sie zu Ihrer Anwendungsinfo.plist-Datei.

2. Und stellen Sie ein, Ansichtscontrollerbasierter Statusleistenmodus: Boolean NEIN

Hoffentlich habe ich das Statusleistenproblem gelöst.....

0voto

DevB2F Punkte 4021

In meinem Fall wurde loadView() unterbrochen
dieser Code: self.edgesForExtendedLayout = UIRectEdgeNone

aber nachdem loadView() gelöscht wurde, hat alles einwandfrei funktioniert

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X