2016-06-01 14 views
-2

Ich möchte den Hintergrund der UI Navbar Titel in iOS ändern. Ich möchte das Endergebnis wie das Bild erscheint unten:Hintergrundfarbe der Navigationsleiste festlegen (swift)

enter image description here

Bitte lassen Sie mich wissen, ob dies möglich ist, oder wenn ich eine Abhilfe tun müssen.

Changing navigation bar color in Swift nicht die Hintergrundfarbe des Titeltextes für die UINavigationBar

+0

Mögliches Duplikat von [Ändern der Farbe der Navigationsleiste in Swift] (http://stackoverflow.com/questions/46857238/changing-navigation-bar-color-in-swift) – brimstone

Antwort

0

Also im Grunde müssen Sie eine UIView der navigationBarTitleView hinzufügen. Fügen Sie dann der Uiview und Finaly eine Beschriftung oder UIImageView hinzu, um diese Ansicht der Titelansicht hinzuzufügen. Also hier habe ich Label zum TitelView hinzugefügt. Hoffe, dass dies werde Ihnen helfen: -

override func viewDidLoad() { 
    super.viewDidLoad() 
    let navBarView: UIView = UIView() 
    navBarView.frame = CGRectMake(0, 0, 100.0, 21.0) 

    let label: UILabel = UILabel() 
    label.frame = CGRectMake(0, 0, 90.0, 21.0) 
    label.text = "Your Title" 
    label.textAlignment = .Center 
    label.backgroundColor = UIColor.grayColor() 
    navBarView.addSubview(label) 
    self.navigationItem.titleView = navBarView 
    // Do any additional setup after loading the view, typically from a nib. 
} 

So, hier ist die Ausgabe: -

enter image description here

+0

Weißt du wie ich das erstellte Label etwas verschieben könnte? Ich versuche es seit einiger Zeit ohne Glück. –

+0

Haben Sie nicht bekommen ..., was möchten Sie tun? –

+0

Ich fand es heraus 'navigationBar.setTitleVerticalPositionAdjustment (CGFloat (-14), forBarMetrics: UIBarMetrics.Default)' –

0

Ihre beste Wette ist Adresse ist die titleView Eigenschaft UINavigationBar zu verwenden. Versuchen Sie so etwas wie diese

// Create new label that will service as a title view 
    let titleView = UILabel() 
    /* customize label to heart's content */ 
    titleView.text = "TITLE HERE" 
    // Set your custom background color 
    titleView.backgroundColor = UIColor.grayColor() 
    // Now set this is as the titleView of the navigation bar 
    self.navigationItem.titleView = titleView 

Wenn Sie einen statisch managed UINavigationBar (keinen Teil von UINavigationController) haben. So etwas sollte funktionieren:

navBar.pushNavigationItem(self.navigationItem, animated: NO) 
+0

Nichts wird angezeigt, wenn ich dies tue. Sollte in viewDidLoad() sein? –

+0

@MattButler wo hast du es gesagt? – penatheboss

+0

Ich habe versucht ViewDidLoad() und ViewWillAppear() –

0
class SomeNavigationController: UINavigationController { 

override func awakeFromNib() { 
    super.awakeFromNib() 

    self.navigationBar.topItem?.title = NavTitle 
    } 

} 

I NavTitle aus einer Konstanten schnellen Klasse verwiesen haben. Ich hoffe das hilft!

Verwandte Themen