如何在iPhone应用程序中的UINavigationBar中添加图像

use*_*136 42 iphone objective-c uinavigationbar uiimage uinavigationcontroller

在我的应用程序中,我想在导航栏中添加图像(徽标).我正在研究XCode 4.2和iOS 5.

我知道UINavigationBar,UIToolBar在iOS 5中已经改变了.所以iOS 4.2 UINavigationBar代码在iOS 5中不起作用.

我想UINavigationBar在4.2和5版本中支持显示图像.

我想像UINavigationBar下面的截图一样显示图像.

导航栏图像

请帮忙解决这个问题,如果有任何示例代码意味着它对我很有帮助.

谢谢!!!

bar*_*ley 78

一种方法是使用UINavigationItem.titleViewUINavigationItem.rightBarButtonItem.像这样 :

viewController.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage.png"]];
UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage2.jpg"]]];    
viewController.navigationItem.rightBarButtonItem = item;    
Run Code Online (Sandbox Code Playgroud)

这里我UIImageView用作自定义视图,但它可以UIButton使用自定义图像.

  • 我正在使用ARC ...... :) @MartinReichl (3认同)
  • 只是一个不,你不应该说@"youtimage.png".@"yourimage"就足够了,iOS会找出要加载的正确图像. (2认同)

mik*_*396 33

另一种不使用viewController的方法

// Create your image
UIImage *image = [UIImage imageNamed: @"logo.png"];
UIImageView *imageview = [[UIImageView alloc] initWithImage: image];

// set the image view to the title view
self.navigationItem.titleView = imageview;
Run Code Online (Sandbox Code Playgroud)


roc*_*ift 5

Swift版本:您可以创建协议扩展以在视图控制器中使用该功能

protocol Customizable {
    var navigationItem: UINavigationItem { get }
}

extension Customizable {
    func setNavBarLogo() {

        let logo = UIImage(named: "logo")
        let logoImageView = UIImageView(image: logo)

        self.navigationItem.titleView = logoImageView
    }
}
Run Code Online (Sandbox Code Playgroud)