Der Text/die Elemente der Navigationsleiste werden nie zentriert aussehen, so wie Sie Dinge anzeigen. Technisch sind sie bereits in der Nav-Leiste zentriert, aber die Nav-Leiste verwaltet die Zentrierung und hält alle Elemente auf den unteren Rand der Navigationsleiste beschränkt.
Die Statusleiste benötigt 20px. Die Navigationsleiste sollte eine Höhe von 44 Pixeln haben. Der obere Teil der Navigationsleiste sollte auf den Rand des oberen Layouts beschränkt sein, NICHT auf die obere Ansichtsgrenze. Der Grund dafür ist, dass ios die Statusleiste entfernt (eigentlich die obersten 20 Pixel von allem, was im Hochformat angezeigt wird), wenn das Gerät in den Querformat-Modus gedreht wird. Wenn Ihre Navigationsleiste 44px groß ist, zeigt das Umschalten des Geräts in den Querformatmodus an, dass der Text vertikal korrekt zentriert ist.
Mein Vorschlag für Sie, all dies zu sehen, ist eine kleine Ansicht über der Navigationsleiste zu erstellen. Machen Sie die Ansicht 20px hoch, beschränken Sie sie auf View.Top (NICHT an den Rand) und stellen Sie den Hintergrund oder die Tintcolor auf Hellgrün oder etwas anderes. Dann setzen Sie Ihre Navigationsleiste auf 44px, beschränken Sie sie auf die Top Layout Margin Guide (NICHT bis zum Ende der Statusansicht, die Sie gerade erstellt haben, und NICHT von der View.Top Boundary versetzt).
Dann, wenn Sie das Gerät hin und her spiegeln, werden Sie sehen, dass Ihr Text immer in der Navigationsleiste zentriert ist, und die Statusleiste wird kommen und über die Navigationsleiste gehen.
PS. Mach das zuerst im Storyboard, es ist am einfachsten.
20 Pixel Raum der Statusleiste, und Ihre Statusleiste Farbe ist weiß. also kannst du das nicht sehen. –
Können Sie bitte etwas mehr Code für die 'navigationBar' Deklaration hinzufügen? und warum Sie die Navigationsleiste in der View-Controller-Ansicht hinzufügen, sollte es von NavigationController/ViewController sein. Auch wie Ashish sagte, haben Sie 20 Pixel Speicherplatz auch in der Navigationsleiste berechnet. – HardikDG