2016-06-11 22 views
0

Ich möchte eine benutzerdefinierte linke Navigationsleiste in meinem Code erstellen. Ich kann es mit Titel oder nur Bild machen. Wenn ich den Titel und das Bild des Benutzers gleichzeitig haben möchte, sieht die Schaltfläche nicht passend aus.Swift Benutzerdefinierte Navigation Artikel

Ich habe versucht, mit zwei Tasten hinzuzufügen. Einer ist für Titel und ein anderer ist Bild, aber dieses Mal gibt es zu viel Abstand zwischen den Knöpfen.

Ich möchte linke Navigationstaste wie: enter image description here

Wie kann ich Artikel Bar-Taste wie Bild Sie links? (< Chats Teil)

Antwort

2

zunächst eine UIButton mit Titel und Bild erzeugen, und stellen Sie die leftbuttonitem von navigationbar zum erstellt unbutton:

//create the uibutton 
var button = UIButton.buttonWithType(UIButtonType.Custom) as? UIButton 
//Set the image 
button?.setImage(UIImage(named: "yourImageName.jpg"), forState: UIControlState.Normal) 
//Set the title 
button?.setTitle("Yourtitle", forState: UIControlState.Normal) 
//Add target 
button?.addTarget(self, action:"callMethod", forControlEvents: UIControlEvents.TouchDragInside) 
button?.frame=CGRectMake(0, 0, 30, 30) 
//Create bar button 
var barButton = UIBarButtonItem(customView: button!) 
self.navigationItem.leftBarButtonItem = barButton 

Dann stellen die Position des Titels und Bild innerhalb des UIButton Verwendung imageEdgeInsets und titleEdgeInsets:

let spacing:CGFloat = 10.0; // the amount of spacing to appear between image and title 
tabBtn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, spacing); 
tabBtn.titleEdgeInsets = UIEdgeInsetsMake(0, spacing, 0, 0); 

die Einsätze hier Anpassen ist ein bisschen technisch, biete ich nur eine Antwort, die Sie direkt verwenden können. Für weitere Informationen, werfen Sie einen Blick auf diesen Beitrag Aligning text and image on UIButton with imageEdgeInsets and titleEdgeInsets

1

Das Problem ist, dass Sie nicht imageEdgeInset und titleEdgeInset der Schaltfläche richtig eingestellt haben, das ist, warum Sie mehr Platz zwischen Titel und Bild immer versuchen die imageEdgeInset und titleEdgeInset Vertonung Taste:

leftBarBtn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 5) 
leftBarBtn.titleEdgeInsets = UIEdgeInsetsMake(0, 5, 0, 0)