【问题标题】:Design navigation bar in iOS swift在 iOS swift 中设计导航栏
【发布时间】:2019-05-15 06:01:04
【问题描述】:

我想设计一个导航View之类的。

1.左侧菜单,标题居中

2。左侧菜单,旁边的图像,左侧按钮

我正在尝试添加这样的按钮,但按钮显示不正确

func addMenuButton(){

        let btn_menu = UIButton(frame: CGRect(x: 0, y: 0, width: 40, height: 44))
        btn_menu.addTarget(self, action: #selector(self.refreshBtnClicked), for: .touchUpInside)
        btn_menu.setImage(#imageLiteral(resourceName: "ic_menu"), for: .normal)
        btn_menu.setImage(#imageLiteral(resourceName: "ic_menu"), for: .selected)
        self.navigationController?.navigationItem.leftBarButtonItems = [UIBarButtonItem(customView: btn_menu)]
    }

【问题讨论】:

  • 添加你得到的输出截图。
  • “但按钮未正确显示” 没有任何解释。显示当前输出图像

标签: ios swift uinavigationbar


【解决方案1】:
//Option 1
self.title = "Title Here"
self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "menu"), style: .plain, target: self, action: #selector(menuBtnAction(_:)))
//Option 2
let plusBtn = UIBarButtonItem(image: UIImage(named: "plus"), style: .plain, target: self, action: #selector(plusBtnAction(_:)))
let logoView = UIImageView(image: UIImage(named:"ins"))
logoView.translatesAutoresizingMaskIntoConstraints = false
logoView.widthAnchor.constraint(equalToConstant: 180).isActive = true
self.navigationItem.leftBarButtonItems = [plusBtn,UIBarButtonItem(customView: logoView)]

【讨论】:

  • @Dhiru 您可以更改 logoView.widthAnchor 值以满足您的需要
【解决方案2】:
let titleLabel = UILabel()
titleLabel.text = "Main Controller"
titleLabel.frame = self.navigationController!.view.frame
titleLabel.textAlignment = .left
self.navigationItem.titleView = titleLabel
self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(tapped))
self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .save, target: self, action: #selector(tapped))

【讨论】:

  • 那么添加图片呢?
  • initWithCustomView 的 UIBarbuttonItem 你添加一个图像。
【解决方案3】:

这样试试

 func addMenuButton(){

    let leftBarButtonItem : UIBarButtonItem? =  UIBarButtonItem(image: #imageLiteral(resourceName: "ic_menu"), style: UIBarButtonItem.Style.plain, target: self, action: #selector(refreshBtnClicked))
    self.navigationController?.navigationItem.leftBarButtonItem = leftBarButtonItem;

  }

【讨论】:

    猜你喜欢
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    相关资源
    最近更新 更多