天天看點

Swift在導航欄左側或者右側放置多個按鈕

Swift在導航欄左側或者右側放置多個按鈕在做應用中非常的常用了,我們下文就一起來看看Swift在導航欄左側或者右側放置多個按鈕例子,希望此文章能夠對各位有幫助。

使用 navigationItem.leftBarButtonItem 和 navigationItem.rightBarButtonItem 可以很友善的分别設定導航欄左側和右側按鈕,但一側隻能有一個按鈕。

如果想要在一側使用多個按鈕,可以通過 leftBarButtonItems 和 rightBarButtonItems 來實作。    下面示範給導航欄右側添加兩個按鈕(搜尋和設定):

同時兩個按鈕間設定了間距,并将設定按鈕頂到邊上。

Swift在導航欄左側或者右側放置多個按鈕

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開中導航欄的放多個按鈕的例子。