2017-01-18 32 views
3

我想一个徽标添加到我的页面的导航条,但是当我将此代码添加到我的viewDidLoad()它不会出现:标志在导航栏斯威夫特没有显示

let logo = UIImage(named: "Dog_Log_Icon_H_W") 
let imageView = UIImageView(image:logo) 
self.navigationItem.titleView = imageView 

有谁知道为什么这可能不工作?我检查了图像名称是否正确。这是我的故事板,如果有帮助:

storyboard

+0

是你r图像格式是.png还是.jpg? –

+0

格式是PNG,为什么? – MarksCode

+0

原因是,如果格式不是.png,则UIImage的命名属性是全名。 –

回答

0

您没有设置图像视图的框架。我设置了图像视图的框架,它工作正常。

if let logo = UIImage(named: "download"){ 
      let imageView = UIImageView(image:logo) 
      imageView.frame = CGRect(x: 0, y: 0, width: 30, height: 30) 
      self.navigationItem.titleView = imageView 

     }else{ 
      print("Image not found...") 
     } 
+0

仍然没有显示,这里是我的UI在运行时的图片:http://imgur.com/a/MuO72 – MarksCode

+0

我认为你的图片不可用。检查我编辑的答案。 – iMuzahid

+0

没有注销。 – MarksCode

0

原因是因为您忘记了设置为imageView的位置。 你可以改变你的代码是这样的:

let logo = UIImage(named: "Dog_Log_Icon_H_W") 
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 30, height: 30) 
imageView.image = logo 
self.navigationItem.titleView = imageView 
+0

仍然没有显示,这是我的UI在运行时的图片:http://imgur.com/a/MuO72 – MarksCode

1

所以它工作时,我做了一个出口,

@IBOutlet weak var navItem: UINavigationItem!

然后把下面的代码在我viewDidAppear

let logo = UIImage(named: "Dog_Log_Icon_4"){ 
let imageView = UIImageView(image:logo) 
imageView.frame = CGRect(x: 0, y: 0, width: 30, height: 30) 
navItem.titleView = imageView 

不知道为什么我必须这样做..