iOS 8 Swift Xcode 6 - Legen Sie die obere nav bar bg Farbe und Höhe

7

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:

  • Höhe der Navigationsleiste
  • Navigationsleiste bg Farbe in RGB
  • Nav bar zentriertes Logo

Ich arbeite mit iOS8, Xcode 6 und Swift.

Vielen Dank für eine klare Antwort!

Dies ist mein Code in ViewController.swift

%Vor%     
Erik Lydecker 24.02.2015, 20:15
quelle

3 Antworten

4

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%     
DBoyer 24.02.2015, 20:20
quelle
12

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:

  • Der Titel & amp; Elemente werden nicht in der Mitte der Navigationsleiste platziert
  • Der Titel & amp; Wenn der Benutzer zwischen den View-Controllern
  • navigiert, werden die Elemente verschoben

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 ...

    
John the Traveller 29.10.2015 07:56
quelle
2

Tolle Antwort von Bon Bon !

Stellen Sie in Swift 3 jedoch sicher, dass Sie

ersetzen %Vor%

mit

%Vor%

Ansonsten wird es nicht funktionieren.

    
AndreasLukas 16.09.2016 10:13
quelle

Tags und Links