2016-11-07 95 views
3

在下面的代码中,我有三个按钮,分别显示何时点击一个inputField。现在按钮显示,但所有这些按钮都向左移动,我想要做的是让它们均匀分布并保持它们的状态,而不管它们在哪个手机上查看。在inputAccessoryView中均匀地分隔UIToolbar按钮

如何均匀地将按钮放在UIToolbar中?

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 
    } 

CURRENT:

enter image description here

AFTER:
enter image description here

回答

4

很简单,你只需要每个按钮之间添加一个灵活栏按钮项目。参见以下内容:

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

谢谢你的帮助。 –

+1

没问题,请upvote&接受我的答案,因为这可以帮助我一个很大的! –