如何在导航栏中添加图片和按钮设计?

问题描述

我想在导航栏的设计中添加按钮和图片,但无法成功添加图片。我在 viewDidLoad 中尝试了以下代码

 let logo = UIImage(named: "logo.png")
    let imageView = UIImageView(image:logo)
    navigationController?.navigationBar.barTintColor = UIColor.green
    self.navigationItem.titleView = imageView

我尝试了代码,导航栏如下所示:

enter image description here

由于我尝试的代码,边缘有空间。我想将图片与屏幕右侧对齐。我想将按钮与屏幕左侧对齐。

我想要的设计图如下:

enter image description here

我应该为此尝试什么代码

解决方法

你应该试试这个,希望这会奏效

let backButton: UIBarButtonItem = UIBarButtonItem(title: "Back",style: .plain,target: self,action: #selector(back))
        self.navigationItem.leftBarButtonItem = backButton
    
    let logo = UIImage(named: "google_logo.png")
    let imageView = UIImageView(image:logo)
    imageView.contentMode = .scaleAspectFit
    self.navigationItem.titleView = imageView

enter image description here

,

这是你想要的吗?虽然背景图片被拉伸,因为我只是随机选择了一张图片,但导航栏的分辨率不正确。

在 iOS 14 中,它看起来像这样。嗯,我也google了,因为这也是我第一次自定义导航栏的背景图片。我通常使用纯色作为背景。

http://jasperreports.sourceforge.net/sample.reference/forms/index.html

    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = .white
        
        let img = UIImage(named: "Human")!
        navigationController?.navigationBar.setBackgroundImage(img.resizableImage(withCapInsets: UIEdgeInsets(top: 0,left: 0,bottom: 0,right: 0),resizingMode: .stretch),for: .default)

        let backImg = UIImage(named: "back")?.withRenderingMode(.alwaysOriginal)
        let leftButton = UIBarButtonItem(image: backImg,action: #selector(backTapped))
        navigationItem.leftBarButtonItem = leftButton
    }