如何在Objective-C中设置UINavigationBar的背景?

时间:2015-01-28 09:29:07

标签: ios objective-c uinavigationbar

我正在尝试更改background的{​​{1}}。

我已将图片放到UINavigationBarImages.xcassets文件为xib

enter image description here

我在TableView中写了[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"bar-background.png"] forBarMetrics:UIBarMetricsDefault];,如下所示。

viewDidLoad

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. UIView* bview = [[UIView alloc] init]; bview.backgroundColor = [UIColor groupTableViewBackgroundColor]; //self.title = NSLocalizedString(@"WiFi Camera Viewer", nil) ; [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"bar-background.png"] forBarMetrics:UIBarMetricsDefault]; } 未显示任何类似以下enter image description here

的图片

如何在Objective-C中设置UINavigationBar的背景?

我错过了什么吗?提前谢谢。

1 个答案:

答案 0 :(得分:3)

您使用的代码是旧的,从iOS 7开始,您可以使用下面的

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"YourImage"] forBarMetrics:UIBarMetricsDefault];

如果您提供的图像高度为44px,它只会在没有状态栏的情况下覆盖导航栏,如果您提供高度为66px的图像,它将覆盖它们