导航栏TintColor不使用UIColor initWithPatternImage iOS5

导航栏TintColor不使用UIColor initWithPatternImage iOS5,ios5,uinavigationbar,uicolor,tintcolor,Ios5,Uinavigationbar,Uicolor,Tintcolor,我正在使用iOS5,我正在尝试为我的导航栏设置一个自定义的TintColor 代码:我在视图中使用的代码将出现: [self.navigationController.navigationBar setTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"NavigationBarImage.png"]]]; 该图像是我的应用程序中可用的320 x 44 PNG图像 当我使用 self.navigationControll

我正在使用iOS5,我正在尝试为我的导航栏设置一个自定义的
TintColor

代码:我在视图中使用的代码将出现

[self.navigationController.navigationBar setTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"NavigationBarImage.png"]]];
该图像是我的应用程序中可用的320 x 44 PNG图像

当我使用

self.navigationController.navigationBar.tintColor = [UIColor orangeColor];
它显示橙色,但不适用于
图案图像

我做错了什么?

您可以使用UINavigationBar类别设置背景图像

#import "UINavigationBar+Background.h"

@implementation UINavigationBar (Background)

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

@end

感谢fannheyward,实际上还有一个更简单的方法来完成这项工作。我刚想出来。[self.navigationController.navigationBar setBackgroundImage:[UIImage ImageName:@“NavigationBarImage.png”]forBarMetrics:UIBarMetricsDefault];这非常适合任何类型的定制图像。无需添加类别。@shrinketsarkar我的错误。为什么不使用
[self.navigationController.navigationBar setBackgroundImage:[UIImage ImageName:@“image.png”]forBarMetrics:UIBarMetricsDefault]直接?