2017-01-02 4 views
0

Ich habe zwei Tasten auf der rechten Seite meiner Navigationsleiste.Benutzerdefinierte UIBarButtonItem Mit BG Farbe und Text Swift 3

extension UIViewController { 

func setNavigationBarItem() { 

    let profileButton = UIBarButtonItem(title: "?", style: .plain, target: self, action: #selector(didTapProfileButton(_:))) 
    navigationItem.rightBarButtonItems = [addRightBarButtonWithImage(UIImage(named: "menu")!), profileButton] 

    self.slideMenuController()?.removeRightGestures() 
    self.slideMenuController()?.addRightGestures() 
    } 
} 

Ich habe 2 Schaltflächen wie folgt erstellt. Aber das ProfilButton, das ich will, ist mit der Hintergrundfarbe und dem Eckradius zu diesem Knopf. Wie es hinzuzufügen, um es wie aussehen:

enter image description here

schwarzen Teil ignorieren. UIBarButton wird von gelbem Hintergrund und Eckenradius sein.

+0

Was Ihre tatsächlichen Erwartung und was Sie bekommen, PLZ angeben. –

Antwort

4

Für dass Sie nur eine Option, die Sie UIButton Instanz mit Design erstellen müssen, die Sie danach UIBarButtonItem Instanz von dieser Schaltfläche erstellen möchten.

let btnProfile = UIButton(frame: CGRect(x: 0, y: 0, width: 25, height: 25)) 
btnProfile.setTitle("SY", for: .normal) 
btnProfile.backgroundColor = UIColor.yellow 
btnProfile.layer.cornerRadius = 4.0 
btnProfile.layer.masksToBounds = true 

nun die UIBarButtonItem von dieser Schaltfläche erstellen und mit dem rightBarButtonItems gesetzt.

navigationItem.rightBarButtonItems = [addRightBarButtonWithImage(UIImage(named: "menu")!), UIBarButtonItem(customView: btnProfile)] 
+0

Danke. Es funktioniert nach meinen Anforderungen. – Nitesh

+0

@Nitesh Willkommen Kumpel, froh, dass es funktioniert :) –

2
let profileButton = UIButton() 
    profileButton.frame = CGRect(x:0, y:0, width:30, height:30) 
    profileButton.setTitle("SY", for: .normal) 
    profileButton.setTitle("SY", for: .highlighted) 
    profileButton.backgroundColor = UIColor.yellow 
    profileButton.layer.cornerRadius = 5.0 
    profileButton.addTarget(self, action: #selector(didTapProfileButton(_:)), for: .touchUpInside) 

    let rightBarButton = UIBarButtonItem(customView: profileButton) 
    self.navigationItem.rightBarButtonItem = rightBarButton 
+0

Es wurde fälschlicherweise Ihre Antwort aktualisiert, ich habe es bereits zurückgerollt. –

+0

Danke. Es funktioniert nach meinen Anforderungen. – Nitesh

Verwandte Themen