2017-02-11 2 views
0

Ich sah die Antwort für this question für das Hinzufügen eines Bildes auf der linken Navigationsleiste Element. Und ich habe es erfolgreich gemacht.Bild und Text für Navigationsleiste Schaltfläche Element. swift

Aber ich möchte auch einen kleinen Text neben dem Bild hinzufügen. Zum Beispiel möchte ich zeigen, wie viele Münzen der Benutzer hat. Also muss ich ein Münzenbild und die Anzahl der Münzen daneben zeigen. Wie kann es gemacht werden?

Ich habe versucht, Titel (mit "123"), aber ich sehe nur das Bild und nicht den Titel. Dies ist mein Code:

let button = UIButton.init(type: .custom) 
    button.setImage(UIImage.init(named: "coins.png"), for: UIControlState.normal) 
    button.addTarget(self, action:#selector(self.callMethod), for: UIControlEvents.touchUpInside) 
    button.frame = CGRect.init(x: 0, y: 0, width: 30, height: 30) 
    button.setTitle("123", for: UIControlState.normal) 
    let barButton = UIBarButtonItem.init(customView: button) 
    self.navigationItem.leftBarButtonItem = barButton 

Vielen Dank.

Antwort

0

Verwenden self.navigationItem.leftBarButtonItems, die ein Array von UIBarButtonItem

let button = UIBarButtonItem() 
let text = UIBarButtonItem() 

self.navigationItem.leftBarButtonItems = [button, text] 
0

denke ich, Ihr Problem ist die Breite ist es 30 Versuch ist, um es größer wie 50

let buttonContainer:UIView = UIView() 
buttonContainer.frame = CGRect(x: 0, y: 0, width: 50, height: 32) 

let image = UIImage(named: "coins") 

let button = UIButton.init(type: .system) 
button.setImage(image, for: .normal) 
button.frame = buttonContainer.frame 
button.setTitle("sss", for: .normal)  
button.addTarget(self, action: #selector(action(_:)), for: .touchUpInside) 

buttonContainer.addSubview(button) 
self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: buttonContainer) 
2

Da die Bar-Taste Element mit initialisiert In einer benutzerdefinierten Ansicht können Sie einer Ansicht eine UIImage und eine UILabel hinzufügen, zusammen mit einer UIButton, um das Berührungsereignis zu erfassen und diese an den Initialisierer weiterzuleiten.

// the UIButton is simply there to capture touch up event on the entire bar button view. 
    let button = UIButton.init(type: .custom) 
    button.addTarget(self, action: #selector(buttonPressed), for: .touchUpInside) 
    let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 30, height: 30)) 
    imageView.image = UIImage(named: "coins") 
    let label = UILabel(frame: CGRect(x: 35, y: 0, width: 50, height: 30)) 
    label.text = "1234" 
    let buttonView = UIView(frame: CGRect(x: 0, y: 0, width: 90, height: 30)) 
    button.frame = buttonView.frame 
    buttonView.addSubview(button) 
    buttonView.addSubview(imageView) 
    buttonView.addSubview(label) 
    let barButton = UIBarButtonItem.init(customView: buttonView) 
    self.navigationItem.leftBarButtonItem = barButton 

Sie müssen die Rahmen für Ihre eigenen Verwendungen natürlich entsprechend anpassen.

0

Sie können backgroundImage für Bild und setTitle für Test auf die Schaltfläche verwenden. folgen Sie diesem Link auf jeden Fall erhalten Sie Idee:

image for nav bar button item swift

Verwandte Themen