Swift在导航栏多个按钮_Swift设置navigation左右两侧多个按钮
2019-01-02 14:05:39  By: shinyuu

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("客服按钮点击")
}


若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+