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

时间:2012-01-11 04:14:55

标签: iphone objective-c uinavigationcontroller uiimage uinavigationbar

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

我知道{5}已更改了UINavigationBarUIToolBar,因此iOS 4.2 UINavigationBar代码在iOS 5中无效。

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

我希望在UINavigationBar中显示图片,如下面的屏幕截图所示。

Navigation bar image

请在这方面提供帮助,如果有任何示例代码,则对我非常有帮助。

感谢!!!

3 个答案:

答案 0 :(得分: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;    

此处我使用UIImageView作为自定义视图,但可以UIButton使用自定义图片。

答案 1 :(得分: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;

答案 2 :(得分:4)

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
    }
}