UINavigationBar自定义背景图片

| 我使用这些建议的解决方案为UINavigationBar提供了自定义图像。 (更明确地说:我在AppDelegate.m文件中向UINavigationBar添加了一个类别)。 到目前为止,这一切正常,我没有任何问题。但是现在,我在最近的iOS5 beta上运行我的应用。现在,UINavigationBar再次为空白。 由于我安装的所有其他应用程序都使用自定义图像,因此它们的行为仍然相同,我想我的代码中肯定有“错误”的提示,iOS5现在不再支持。 那么,有人知道我采用上述解决方案可能会出什么问题吗? 我发现使其起作用的唯一方法是创建UINavigationBar的真实子类,然后在所有视图中告诉IB使用该自定义类。虽然不那么优雅...     
已邀请:
        要同时支持这两个版本,您需要询问是否存在setBackgroundImage:forBarMetrics:方法。 看看我关于它的博客文章: http://www.mladjanantic.com/setting-custom-background-for-uinavigationbar-what-will-work-on-ios5-and-ios4-too/     
        另一种可能的“ hacky”解决方案是创建一个自定义视图,并将其作为subView插入UINavigationBar中-可能仍然可以使用:
UIView *backgroundView = ...
[navigationBar insertSubview:backgroundView atIndex:0];
或检查iOS5文档中更新的UINavigationBar类参考以获取用于设置自定义背景的内置方法     
        使用此代码
        UIImage *backgroundImage = [UIImage imageNamed:@\"strip.png\"];
        [upnavbar setBackgroundImage:backgroundImage forBarMetrics:UIBarMetricsDefault];
这会工作。     
        这在我的工具栏上为我工作
//toolBar background image set based on iOS version
    [[UIDevice currentDevice] systemVersion];

    if ([[[UIDevice currentDevice] systemVersion] floatValue] > 4.9) {

        //iOS 5
        UIImage *toolBarIMG = [UIImage imageNamed: @\"toolBar_brown.png\"];  

        if ([toolBar respondsToSelector:@selector(setBackgroundImage:forToolbarPosition:barMetrics:)]) { 
            [toolBar setBackgroundImage:toolBarIMG forToolbarPosition:0 barMetrics:0]; 
        }

    } else {

        //iOS 4
        [toolBar insertSubview:[[[UIImageView alloc] initWithImage:[UIImage imageNamed:@\"toolBar_brown.png\"]] autorelease] atIndex:0]; 

    }
    

要回复问题请先登录注册