2016-08-07 5 views
2

以下のコードを使用して、画像をナビゲーションバーのタイトルとして迅速に設定しようとしています。コードは正常に構築されますが、イメージは表示されません。アドバイスをいただければ幸いです。ナビゲーションバーのタイトルとして画像を設定する

import UIKit 

class FirstViewController: UIViewController { 

    @IBOutlet weak var navigationBar: UINavigationItem! 
    var convoImage: UIImage! 
    var convoImageView: UIImageView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     self.convoImage = UIImage(contentsOfFile: "conversation.png") 
     self.convoImageView = UIImageView(image: self.convoImage) 
     self.navigationBar.titleView = self.convoImageView 
    } 
} 

答えて

1

navigationItemのtitleViewを設定します。あなたのコードで

let image = UIImage(named: "image_name.png") 
self.navigationItem.titleView = UIImageView(image: image) 

線の下に置き換える:

self.convoImage = UIImage(named: "conversation.png") 
+0

self.convoImage = UIImage(contentsOfFile: "conversation.png") 

を私は、IOSに新たなんです。だから、彼らの違いは何ですか?私はドキュメンテーションを見た。唯一の違いは、画像をキャッシュすることです。だから、何が問題を引き起こしているのですか? –

+0

はい、しかし、 "contentOfFile"を使用している場合、 "conversation.png"の代わりに画像のフルパスを指定する必要があります ように:self.convoImage = UIImage(contentsOfFile: "/ Users/userName/Desktop/YourProjectName/conversation .png ") Olsoプロジェクトナビゲータから" "の間のコードに画像をドラッグできます。 –

+1

2番目の方法はバンドル内の画像用で、最初はバンドル外の画像用です。そのため、上記のようにフルパスを提供する必要があります。 – SkrewEverything

0

フレームをconvoImageViewに設定する必要があります。

import UIKit 

class FirstViewController: UIViewController { 

    @IBOutlet weak var navigationBar: UINavigationItem! 
    var convoImage: UIImage! 
    var convoImageView: UIImageView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     self.convoImage = UIImage(named: "conversation.png") 
     self.convoImageView = UIImageView(image: self.convoImage) 
     self.convoImageView.frame = CGRectMake(0,0,720,100) 
     self.navigationBar.titleView = self.convoImageView 
    } 
} 
関連する問題