1

我想用自定义图像替换当前的导航栏。我的代码的结构是标签栏控制器控制一堆包含视图的导航控制器(标签栏控制器->导航控制器->视图)。我尝试在我的应用委托中使用此代码

@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

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

4

2 回答 2

3

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

[aNavigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav.png"] forBarMetrics:UIBarMetricsDefault];
于 2012-08-20T00:46:53.383 回答
2

我不会使用类别。我会将 UINavigationBar 子类化。看到这个:https ://stackoverflow.com/a/6959354/472344

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

于 2012-08-20T01:38:42.887 回答