我正在尝试为 UINavigationBar 设置背景图像。
我尝试了两种方法,
1. [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"KnavigationBarImage.png"] forBarMetrics:UIBarMetricsDefault];
在 ios 5 中支持,但在 ios 4.3 中运行时崩溃。
2. self.navigationController.navigationBar.layer.contents = (id)[UIImage imageNamed:@"KnavigationBarImage.png"].CGImage;
它在 ios 4 中工作正常,但图像在 ios 5 模拟器中不显示。
我需要在版本 4 和版本 5 中都能工作的代码。
请给我建议。
谢谢。
最佳答案
写一个这样的方法来查找设备的操作系统。
static int sIsiOS5 = -1;
+(BOOL)isIOS5
{
if( -1 == sIsiOS5)
{
sIsiOS5 = 0;
if( [[UIScreen mainScreen] respondsToSelector:@selector(brightness)])
{
sIsiOS5 = 1;
}
}
return sIsiOS5;
}
设置图片时,检查如下,然后设置图片。
if ( [Utilities isIOS5] ) {
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"KnavigationBarImage.png"] forBarMetrics:UIBarMetricsDefault];
}
else
{
self.navigationController.navigationBar.layer.contents = (id)[UIImage imageNamed:@"KnavigationBarImage.png"].CGImage;
}
关于ios - UINavigationBar 的背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9389287/