2016-11-07 98 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&接受我的答案,因爲這可以幫助我一個很大的! –