2016-07-09 12 views
0

ich ein rechten Navigationsleiste Element hinzufügen, die ein farbigen Hintergrund Bild hat: als Hintergrund der SchaltflächeIn ein buntes Bild als das rechte Leiste Taste Element in einer Navigationsleiste

let rightButton = UIBarButtonItem(image: UIImage(named: "avatar")!, 
            style: UIBarButtonItemStyle.Plain, 
            target: self,  
            action: #selector(self.rightNavBarItemAction)) 

navigationItem.rightBarButtonItem = rightButton 

Anstatt das Bild von (in Farben), bekomme ich einen weißen Platzhalter.

Antwort

1

Sie können das Bild des Rendering-Modus zu UIImageRenderingMode.AlwaysOriginal aktualisieren.

let img = UIImage(named: "avatar")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal); 
let rightButton = UIBarButtonItem(image: img, 
             style: UIBarButtonItemStyle.Plain, 
             target: self, 
             action: #selector(self.rightNavBarItemAction)) 

Alternativ können Sie eine benutzerdefinierte Ansicht wie in Vladimir Antwort gesetzt.

+0

Es funktionierte wie ein Charme! Danke – Carpsen90

1

Um dies zu erreichen, müssen Sie eine Taste UIButton, setzen Sie das Bild dieser Taste und dann als die benutzerdefinierte Ansicht zugewiesen, wenn Ihr UIBarButtonItem:

let button = UIButton() 
button.frame = CGRectMake(0, 0, 51, 31) 
button.setImage(UIImage(named: "avatar"), forState: .Normal) 
button.addTarget(self, action: #selector(self.rightNavBarItemAction)), forControlEvents: .TouchUpInside) 

let barButton = UIBarButtonItem() 
barButton.customView = button 
self.navigationItem.rightBarButtonItem = barButton