在navigationBar中设置rightBarButtonItem

时间:2018-06-25 09:28:57

标签: ios swift uinavigationbar uinavigationitem

我已经坚持了好几天了。我的rightBarButtonItem有问题。我想创建一个自定义视图。在自定义视图中,有2个项目:标签,imageView。当我输入以下内容时:

let customView = UIView()
    customView.translatesAutoresizingMaskIntoConstraints = false
    customView.backgroundColor = .black
    customView.frame = CGRect(x: 0, y: 0, width: 90, height: 40)

    let coinLabelNavigationBar = UILabel()
    coinLabelNavigationBar.frame = CGRect(x: 40, y: 0, width: 30, height: 25)
    coinLabelNavigationBar.translatesAutoresizingMaskIntoConstraints = false
    coinLabelNavigationBar.text = "200"
    coinLabelNavigationBar.font = UIFont(name: ".SFUIText-Medium", size: 20)
    coinLabelNavigationBar.textColor = UIColor.white

    let coinImage = UIImageView()
    coinImage.frame = CGRect(x: 75, y: 0, width: 25, height: 25)
    coinImage.translatesAutoresizingMaskIntoConstraints = false
    coinImage.image = UIImage(named: "Coin")

    customView.addSubview(coinLabelNavigationBar)
    customView.addSubview(coinImage)

    let rightBarButton = UIBarButtonItem(customView: customView)

    navigationItem.rightBarButtonItem = rightBarButton

它不起作用,navigationBar向我显示以下内容: NavBar

您有什么主意,如何解决?

感谢您的回答。

2 个答案:

答案 0 :(得分:2)

尝试-

let customView = UIView()
//        customView.translatesAutoresizingMaskIntoConstraints = false
    customView.backgroundColor = .black
    customView.frame = CGRect(x: 0, y: 0, width: 90, height: 40)

    let coinLabelNavigationBar = UILabel()
    coinLabelNavigationBar.frame = CGRect(x: 40, y: 0, width: 30, height: 25)
//        coinLabelNavigationBar.translatesAutoresizingMaskIntoConstraints = false
    coinLabelNavigationBar.text = "200"
    coinLabelNavigationBar.font = UIFont(name: ".SFUIText-Medium", size: 20)
    coinLabelNavigationBar.textColor = UIColor.white

    let coinImage = UIImageView()
    coinImage.frame = CGRect(x: 75, y: 0, width: 25, height: 25)
 //        coinImage.translatesAutoresizingMaskIntoConstraints = false
    coinImage.image = UIImage(named: "coin.jpg")

    customView.addSubview(coinLabelNavigationBar)
    customView.addSubview(coinImage)

    let rightBarButton = UIBarButtonItem(customView: customView)

    navigationItem.rightBarButtonItem = rightBarButton

答案 1 :(得分:0)

对于Swift 3.0:

let btn1 = UIButton(type: .custom)
btn1.setImage(UIImage(named: "imagename"), for: .normal)
btn1.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
btn1.addTarget(self, action: #selector(Class.Methodname), for: .touchUpInside)
let item1 = UIBarButtonItem(customView: btn1)

let btn2 = UIButton(type: .custom)
btn2.setImage(UIImage(named: "imagename"), for: .normal)
btn2.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
btn2.addTarget(self, action: #selector(Class.MethodName), for: .touchUpInside)
let item2 = UIBarButtonItem(customView: btn2)  

self.navigationItem.setRightBarButtonItems([item1,item2], animated: true)