所以我有一个UINavigationController的类别,我重写了以下的init方法
- (id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame])
{
UIImage *image = [UIImage imageNamed:@"navBar.png"];
[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
}
return self;
}
以下代码导致导航栏的背景图像变为空白(白色)。 图像名称正确,它存在于项目中。知道是什么导致了这个问题吗?
答案 0 :(得分:4)
如果你使用iOS4,你可以覆盖 - (void)drawRect
@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect
{
UIImage *navBg = [UIImage imageNamed:@"navBar.png"];
[navBg drawInRect:rect];
}
@end
iOS 5,
if ([[UIDevice currentDevice].systemVersion floatValue] >= 5.0) {
if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){
UIImage *navBarImg = [UIImage imageNamed:@"navBar.png"];
[self.navigationController.navigationBar setBackgroundImage:navBarImg forBarMetrics:UIBarMetricsDefault];
}
}