IOS App开发难免会遇到导航栏右上角需要显示2个按钮的时候,今天就讲一下Swift在导航栏左侧或者右侧放置多个按钮例子,使用 navigationItem.leftBarButtonItem 和 navigationItem.rightBarButtonItem 可以很方便的分别设置导航栏左侧和右侧按钮,但一侧只能有一个按钮。如果想要在一侧使用多个按钮,可以通过 leftBarButtonItems 和 rightBarButtonItems 来实现。
设置按钮
override func viewDidLoad(){ super.viewDidLoad() //navitem search 搜索按钮 let buttonSearch = UIButton.init(frame: CGRect.init(x: 0, y: 0, width: 20, height: 20)) buttonSearch.setImage(UIImage.init(named: "home_navitem_search"), for: UIControlState.normal) buttonSearch.addTarget(self, action: #selector(navigationItemSearchAction), for: UIControlEvents.touchUpInside) let barButtonSearch = UIBarButtonItem(customView: buttonSearch) //navitem 客服按钮 let buttonService = UIButton.init(frame: CGRect.init(x: 0, y: 0, width: 20, height: 20)) buttonService.setImage(UIImage.init(named: "customer_service"), for: UIControlState.normal) buttonService.addTarget(self, action: #selector(navigationItemServiceAction), for: UIControlEvents.touchUpInside) let barButtonService = UIBarButtonItem(customView: buttonService) //按钮间的空隙 let gap = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem.fixedSpace, target: nil, action: nil) gap.width = 12; //用于消除右边边空隙,要不然按钮顶不到最边上 let spacer = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem.fixedSpace, target: nil, action: nil) spacer.width = -5; //设置按钮(注意顺序) self.navigationItem.rightBarButtonItems = [spacer, barButtonSearch, gap, barButtonService]
|
点击事件
//搜索 @objc func navigationItemSearchAction() { print("搜索按钮点击") }
//客服 @objc func navigationItemServiceAction() { print("客服按钮点击") }
|