无法在iOS SDK中自定义UINavigationBar的外观:

时间:2012-07-05 15:42:01

标签: objective-c ios image background uinavigationbar

我正在尝试自定义导航var的外观,通过我的应用程序出现几次(仅供参考:我使用的是故事板)。由于某种原因,Th应用程序不起作用(它被困在行中:

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
在main.m文件中的

,说“Thread 1:signal SIGABRT”。

我写的代码是:

UIImage * TabBarBG = [UIImage imageNamed:@"TabBarBG.png"];
[[UITabBar appearance] setBackgroundImage:TabBarBG];
[[UINavigationBar appearance] setBackgroundImage:TabBarBG];

标签栏的自定义工作方式非常完美,我尝试使用NavBar的不同图片,但为了简单起见,它不在这里!

上面的代码可以在appDelegate类的一个名为“customizeInterface”的方法中找到,它是从同一个类的appFinishLaunchingWithOptions方法(appDelegate)中调用的。

任何关于为什么会发生这种情况的想法以及我能做些什么来使其发挥作用?

任何评论都赞赏!

2 个答案:

答案 0 :(得分:1)

UINavigationBar的外观API不支持名为setBackgroundImage:的方法。但它确实支持名为setBackgroundImage:forBarMetrics:的方法。所以试试:

[[UINavigationBar appearance] setBackgroundImage:TabBarBG forBarMetrics:UIBarMetricsDefault];

答案 1 :(得分:0)

另外,以下是如何更改导航栏标题和阴影颜色(如果它与新背景图像冲突):

https://stackoverflow.com/a/11005059/215845