将图像添加到iPhone导航栏

时间:2012-08-20 00:22:44

标签: iphone ios uinavigationcontroller uitabbarcontroller tabbar

我想用自定义图片替换当前导航栏。我的代码的结构是一个标签栏控制器控制一堆包含视图的导航控制器(标签栏控制器 - >导航控制器 - >视图)。我尝试在我的app delegate

中使用此代码
@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
  UIColor *color = [UIColor blackColor];
  UIImage *img  = [UIImage imageNamed: @"nav.png"];
  [img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
  self.tintColor = color;
}
@end

但它没有用。有什么想法吗?我应该把它放在别的地方吗?谢谢!

2 个答案:

答案 0 :(得分:3)

如果您使用的是iOS 5,则可以使用setBackgroundImage:就像这样初始化导航控制器(本例中为aNavigationController):

[aNavigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav.png"] forBarMetrics:UIBarMetricsDefault];

答案 1 :(得分:2)

我不会使用类别。我会改为继承UINavigationBar。请参阅:https://stackoverflow.com/a/6959354/472344

如果您的目标是iOS 5或更高版本,请改用@ BJH的解决方案。