我尝试了几个不同的代码,但无法显示徽标
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!
PS。我的徽标是200x40px png,资产中名为logo.png。
我的故事板
http://i68.tinypic.com/b68t8o.png
感谢任何帮助
编辑:我通过在那里放置图像视图而不是整个导航项目故事来解决我的问题。谢谢你的建议。
答案 0 :(得分:12)
试试这个
let logo = UIImage(named: "logo.png")
let imageView = UIImageView(image: logo)
imageView.contentMode = .ScaleAspectFit // set imageview's content mode
self.navigationItem.titleView = imageView
或将其添加如下
let logo = UIImage(named: "logo.png")
let imageView = UIImageView(image: logo)
imageView.contentMode = .ScaleAspectFit // set imageview's content mode
self.navBar.topItem?.titleView = imageView
答案 1 :(得分:0)
设置您的imageview的内容模式,如
imageView.contentMode = .ScaleAspectFit
答案 2 :(得分:0)
此代码看起来不错,我认为UIImage名称有错误,您是否调试并检查让徽标不是无?尝试删除" .jpg"
答案 3 :(得分:0)
使用扩展程序:
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()
}