如何把图像作为导航栏标题

我想把一个.png图像放在导航栏的中间,而不是写在文本中的标题。 你能不能让我知道该怎么做?

谢谢。

设置navigationItem的titleView

UIImage *image = [UIImage imageNamed:@"image.png"]; self.navigationItem.titleView = [[UIImageView alloc] initWithImage:image]; 

迅速
包括build议的框架/缩放

 let image : UIImage = UIImage(named: "image.png")! let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 40)) imageView.contentMode = .ScaleAspectFit imageView.image = image self.navigationItem.titleView = imageView 

您可以更改UINavigationBar中的所有视图。 如果您尝试在导航控制器中更改导航栏,请执行以下操作:

 self.navigationItem.titleView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"] autorelease]; 

如果你正在创buildnavigationBar自己做同样的事情,而不是调用self.navigationItem调用: navigationBar.topItem

用Swift 2.x更新

 navigationItem.titleView = UIImageView.init(image: UIImage(named:"yourImageName")) 

寻找这个问题的答案,我已经find了一个很好的和简单的解决scheme,在苹果讨论论坛 ,重写-(void)drawRect:(CGRect)rect UINavigationBar

 @implementation UINavigationBar (CustomImage) - (void)drawRect:(CGRect)rect { UIImage *image = [UIImage imageNamed: @"NavigationBar.png"]; [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; } @end