2016-11-07 2 views
3

Im folgenden Code habe ich drei Tasten, die zeigen, wenn ein InputField abgegriffen wird. Im Moment sind die Buttons zu sehen, aber alle sind nach links verschoben und ich möchte, dass sie gleichmäßig Platz haben und sie so halten, unabhängig davon, auf welcher Handygröße sie angesehen werden.Platz gleichmäßig UIToolbar Tasten in der EingabeAccessoryView

Wie kann ich die Schaltflächen in einer UIToolbar gleichmäßig platzieren?

Code:

override func viewDidLoad() { 
    super.viewDidLoad() 

    addButtonsToKeyboard() 
} 


// Reusable Button 
func configurButton(button:UIButton) { 
    button.backgroundColor = UIColor.whiteColor() 
    button.layer.cornerRadius = 5 
    button.layer.borderWidth = 1.0 
    button.layer.borderColor = UIColor.blueColor().CGColor 
    button.setTitleColor(UIColor.lightGrayColor(), forState: .Normal) 
    button.setTitleColor(UIColor.blueColor(), forState: .Highlighted) 
    button.frame = CGRect(x:0, y:0, width:50, height:35) 
    button.addTarget(self, action: #selector(customKeyPressed), forControlEvents: UIControlEvents.TouchUpInside) 
} 


    func addButtonsToKeyboard(){ 
     // First button 
     let button1 = UIButton() 
     button1.setTitle("Btn 1", forState: .Normal) 
     configureButton(button1) 
     let barButton1 = UIBarButtonItem() 
     barButton1.customView = button1 

     // Second button 
     let button2 = UIButton() 
     button2.setTitle("Btn 2", forState: .Normal) 
     configureButton(button2) 
     let barButton2 = UIBarButtonItem() 
     barButton2.customView = button2 

     // Third button 
     let button3 = UIButton() 
     button3.setTitle("Btn 3", forState: .Normal) 
     configureButton(button3) 
     let barButton3 = UIBarButtonItem() 
     barButton3.customView = button3 


     /** 
     * UIToolbar. 
     */ 
     let toolBar = UIToolbar() 
     toolBar.tintColor = UIColor.redColor() 
     toolBar.barTintColor = UIColor.lightGrayColor() 

     toolBar.items = [barButton1, barButton2, barButton3] 
     toolBar.sizeToFit() 

     myInputField.inputAccessoryView = toolBar 
    } 


    func customKeyPressed(sender: UIButton){ 
     // do something 
    } 

STROM:

enter image description here

NACH:
enter image description here

Antwort

4

Ganz einfach, Sie brauchen nur eine flexible Leistenschaltfläche Element zwischen jeder Taste hinzuzufügen. Siehe die folgenden:

let space = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil) 
toolbar.items = [barButton1, space, barButton2, space, barButton3] 
+0

Vielen Dank für Ihre Hilfe. –

+1

Kein Problem, bitte upvote & akzeptiere meine Antwort, das hilft mir sehr! –

Verwandte Themen