【问题标题】:How to use an image logo on the navigation bar instead of title如何在导航栏上使用图像徽标而不是标题
【发布时间】:2017-02-05 23:17:54
【问题描述】:

我尝试了几个不同的代码,但无法显示徽标

import UIKit 
class HomeViewController: UIViewController { 

override func viewDidLoad() { 
super.viewDidLoad() 

let logo = UIImage(named: "logo.png") 
let imageView = UIImageView(image: logo) 
self.navigationItem.titleView = imageView
navigationItem.titleView?.sizeToFit() 
 } 
}

我什至尝试在课程中包含 IB 本身也不起作用,它似乎不起作用

@IBOutlet weak var navBar: UINavigationItem!

附言。我的 logo 是一个 200x40px 的 png,它在 assets 中命名为 logo.png。

我的故事板

http://i68.tinypic.com/b68t8o.png

感谢任何帮助

编辑:我通过在此处放置图像视图而不是整个导航项故事来解决了我的问题。不过感谢您的建议。

【问题讨论】:

标签: ios swift xcode storyboard swift3


【解决方案1】:

试试这个

 let logo = UIImage(named: "logo.png") 
 let imageView = UIImageView(image: logo) 
 imageView.contentMode = .ScaleAspectFit // set imageview's content mode
 self.navigationItem.titleView = imageView 

【讨论】:

    【解决方案2】:

    设置图像视图的内容模式,例如,

     imageView.contentMode = .ScaleAspectFit
    

    【讨论】:

      【解决方案3】:

      这段代码看起来不错,我认为 UIImage 的名称有错误,您是否调试并检查了 let logo 不是 nil?尝试删除 ".jpg"

      【讨论】:

        【解决方案4】:

        使用扩展:

        extension UIViewController {
            func setNavigationBarLogo() {
                let logo = UIImage(named: "YourLogo.png")
                 let imageView = UIImageView(image: logo)
                imageView.contentMode = .scaleAspectFit
                 self.navigationItem.titleView = imageView
            }
        }
        

        在 UIViewController 中的使用:

         override func viewDidLoad() {
                super.viewDidLoad()
                self.setNavigationBarLogo()
            }
        

        【讨论】:

          猜你喜欢
          • 2019-03-16
          • 1970-01-01
          • 2022-01-22
          • 1970-01-01
          • 2012-11-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多