ios - UINavigationBar 的背景图片

标签 ios uinavigationbar

我正在尝试为 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/

相关文章:

ios - AnchroPoint x :0, y:0 不适用于方程式

ios - 更新 DynamoDB (Swift) 中特定项目的属性

ios - 我如何利用 PageViewController 根据用户的输入生成新的页面 View ?

ios - setHidesBackButton 不起作用

ios - opentok/tokbox iOS SDK 中流(发布者)的订阅者数量限制是多少?

ios - 如何发送所有 AFNetworking 请求的通用信息?

uinavigationbar - 如何去除 UINavigationBar 和 UISearchBar 细线

ios swift - 返回到隐藏导航栏的屏幕时,导航项背景变黑

css - 可以使用 Pixate 将字母间距应用于 UINavigationBar 的标题吗?

ios - UINavigationBar title like Music app