Ich habe überall hingeschaut und alle Code-Snippets getestet, die auf Stack gepostet wurden, aber nichts funktioniert für mich, da ich es brauche, um zu funktionieren.
Ich möchte einfach festlegen:
Ich arbeite mit iOS8, Xcode 6 und Swift.
Vielen Dank für eine klare Antwort!
Dies ist mein Code in ViewController.swift
%Vor%Höhe der Navigationsleiste:
In einer benutzerdefinierten Navigationssteuerungs-Unterklasse ...
Der Trick bei diesem ist, die tatsächliche Höhe der Navigationsleiste NICHT zu ändern und stattdessen ihren Ursprung anzupassen.
%Vor%Navigationsleiste bg Farbe in RGB:
In einer benutzerdefinierten Navigationssteuerungs-Unterklasse ...
%Vor%oder verwenden Sie den Darstellungsproxy
%Vor%Nav bar zentriertes Logo
In einem benutzerdefinierten Ansichtscontroller ...
%Vor%Nach dem Anwenden des Codes in der akzeptierten Antwort scheint sich die Höhe überhaupt nicht zu ändern.
Es ist keine leichte Aufgabe ... und ich habe mehrere Artikel online (die meisten von ihnen in Objective-C) untersucht.
Am nützlichsten ist dies: Ссылка
Aber seine endgültige Lösung bringt keine Elemente in die Mitte, und es ist nicht in Swift.
Also habe ich eine funktionierende Version in Swift gefunden. Hoffen wir, dass es einigen Leuten hilft, da ich so viel wertvolle Zeit auf SO gespart habe.
Lösung in Swift:
Der folgende Code löst einige Probleme, die Sie möglicherweise festgestellt haben:
Sie müssen zuerst die UINavigationBar von der Unterklasse entfernen und in Ihrem Storyboard das Navigationsleistenelement auswählen und auf der Registerkarte "Identity Inspector" die neue Klasse festlegen die benutzerdefinierte Klasse
%Vor%Auch in meinem Kern: Ссылка
iOS 10 Update:
Leider bricht dieser Code in iOS 10, es gibt jemanden, der hilft, es zu beheben, hier gehts los:
iOS 10 benutzerdefinierte Höhe der Navigationsleiste
Und um klar zu sein, dieser Code ist eine Art Hacky, da er von der internen Struktur der Navigationsleiste abhängt ... also, wenn Sie sich trotzdem dafür entscheiden, sollten Sie sich auf bevorstehende Änderungen vorbereiten, die diesen Code kaputt machen können ...
Tolle Antwort von Bon Bon !
Stellen Sie in Swift 3 jedoch sicher, dass Sie
ersetzen %Vor%mit
%Vor%Ansonsten wird es nicht funktionieren.