webentwicklung-frage-antwort-db.com.de

iPhone X - Die verborgene Statusleiste drückt die Navigationsleiste nach oben

Ich teste das Verhalten von iPhone X mit dem Xcode-Simulator. Wenn ich die Statusleiste verstecke, drückt die Navigationsleiste aus irgendeinem Grund nach oben, wodurch der Titel vollständig ausgeblendet wird und die linken und rechten Tasten abgeschnitten werden. Dies geschieht nur auf dem iPhone X.

Illustration:

 enter image description here

Wie kann ich die Statusleiste ausblenden und die Navigationsleiste an einer sichtbaren Position halten?

UPDATE:

Beispielprojekt für Ihre Überzeugung:

https://drive.google.com/file/d/0B5qJARV-Oc9ra1hvZkpXZm9lRUE/view?usp=sharing

21
Roi Mulia

Eine Lösung besteht darin, die Navigationssteuerung in eine Containersichtsteuerung einzubetten, die ordnungsgemäß auf den sicheren Bereich beschränkt ist.

 storyboard setup

Erstellen Sie einfach einen anderen View Controller und ziehen Sie eine "Containeransicht" aus der Objektbibliothek. Diese Ansicht hat obere, untere, führende und nachlaufende Einschränkungen für den sicheren Bereich, alle mit Konstanten gleich 0. Wenn Sie bei gedrückter Maustaste aus der Containeransicht auf den Navigationscontroller ziehen, erhalten Sie eine Option zum Festlegen eines eingebetteten Segments ", der den ausgewählten View-Controller als untergeordneten View-Controller einbettet.

Ich habe die Statusleiste auf dem neuen, von mir erstellten View-Controller ausgeblendet, und sie funktioniert einwandfrei.

 screenshot of working layout on iPhone X

Das fühlt sich an wie etwas, das UINavigationBar automatisch behandeln sollte, aber diese Problemumgehung scheint ziemlich gut zu funktionieren.

Noch ein Hinweis: Wenn Sie die Farbe der Navigationsleiste ändern, müssen Sie auch eine andere Ansicht über der Containeransicht erstellen und deren Farbe an die Farbe der Navigationsleiste anpassen.

13
nathangitter

Für eine kleine App habe ich von einem Push zu einem Modal-Segment gewechselt und in meiner eigenen Navigationsleiste hinzugefügt. Ich habe Push verwendet, weil es gut aussieht, und hatte bereits einen Modal für einen anderen Part, den ich aus Stilgründen anders animieren wollte.

Für kleinere Apps ist dies möglicherweise die schnellste und einfachste Lösung. Bei meinem nächsten Update muss ich jedoch den Navigationscontroller verwenden. Ich glaube, ich schalte die Statusleiste ein, was für mich keine große Sache ist und es erlaubt zu arbeiten.

0
Symanski

Ich denke, Sie müssen "safeAreaLayoutGuide" neues Update in iOS 11 verwenden

Apple hat uns die notwendigen APIs zur Verfügung gestellt, um die unsicheren Regionen dieses iPhone x zu umgehen. Wir machen dies, indem wir die neuen safeAreaLayoutGuide Anker in unserem Code verwenden safeAreaLayoutGuide

0
kishu mewara