在 inputAccessoryView 中均匀分布 space 个 UIToolbar 按钮

Evenly space UIToolbar buttons in inputAccessoryView

在下面的代码中,我有三个按钮,它们在点击 inputField 时显示。现在按钮显示,但所有按钮都向左移动,我想做的是让它们均匀 space 并保持这样,无论它们在什么 phone 尺寸上被查看。

如何在 UIToolbar 中均匀 space 按钮?

代码:

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
    }

当前:

之后:

很简单,只需要在每个按钮之间添加一个灵活的条形按钮项即可。请参阅以下内容:

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