使用 navigationItem.leftBarButtonItem 和 navigationItem.rightBarButtonItem 可以很方便的分別設置導航欄左側和右側按鈕,但一側只能有一個按鈕。
如果想要在一側使用多個按鈕,可以通過 leftBarButtonItems 和 rightBarButtonItems 來實現。 下面演示給導航欄右側添加兩個按鈕(搜索和設置):同時兩個按鈕間設置了間距,並將設置按鈕頂到邊上。
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//搜索按鈕
let button1 = UIButton(frame:CGRectMake(0, 0, 18, 18))
button1.setImage(UIImage(named: "search"), forState: .Normal)
button1.addTarget(self,action:Selector("tapped1"),forControlEvents:.TouchUpInside)
let barButton1 = UIBarButtonItem(customView: button1)
//設置按鈕
let button2 = UIButton(frame:CGRectMake(0, 0, 18, 18))
button2.setImage(UIImage(named: "settings"), forState: .Normal)
button2.addTarget(self,action:Selector("tapped2"),forControlEvents:.TouchUpInside)
let barButton2 = UIBarButtonItem(customView: button2)
//按鈕間的空隙
let gap = UIBarButtonItem(barButtonSystemItem: .FixedSpace, target: nil,
action: nil)
gap.width = 15;
//用於消除右邊邊空隙,要不然按鈕頂不到最邊上
let spacer = UIBarButtonItem(barButtonSystemItem: .FixedSpace, target: nil,
action: nil)
spacer.width = -10;
//設置按鈕(注意順序)
self.navigationItem.rightBarButtonItems = [spacer,barButton2,gap,barButton1]
}
func tapped1(){
print("搜索按鈕點擊")
}
func tapped2(){
print("設置按鈕點擊")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
好了以上就是關於ios開中導航欄的放多個按鈕的例子。