iOS 5 中的 UINavigationBar 外观覆盖

发布于 2025-01-08 20:24:04 字数 479 浏览 0 评论 0原文

我有以下代码:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbarBackBlack.png"] forBarMetrics:UIBarMetricsDefault];
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbarBackBlack.png"] forBarMetrics:UIBarMetricsLandscapePhone];
    [[UINavigationBar appearance] setTintColor:[UIColor colorWithWhite:0.72 alpha:1.0]];

但现在我想在我的应用程序中有一个位置,我希望导航栏的颜色与我在整个应用程序中设置的通用颜色不同。我如何才能仅针对此特定设置更改此设置。是否可以?

I have had the following code:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbarBackBlack.png"] forBarMetrics:UIBarMetricsDefault];
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbarBackBlack.png"] forBarMetrics:UIBarMetricsLandscapePhone];
    [[UINavigationBar appearance] setTintColor:[UIColor colorWithWhite:0.72 alpha:1.0]];

But now I want to have one place in my app where I want the navbar to be a different color than this universal color I've set throughout the app. How can I change this for this particular settings only. Is it possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酷炫老祖宗 2025-01-15 20:24:04

您也可以在导航栏的实例上调用 setBackgroundImage。

请参阅此相关帖子:

自定义 UITabBar 背景图像不在 iOS 5 及更高版本中工作

您还应该根据它是否响应该选择器来调整它:

if ([navBar respondsToSelector:@selector(setBackgroundImage:)])
{
    [navBar setBackgroundImage:[UIImage imageNamed:@"tabbar_brn.jpg"]];
}
else
{
    // ios 4 code here
}

You can call setBackgroundImage on the instance of the navigation bar as well.

See this related post:

Custom UITabBar background image not working in iOS 5 and later

You should also condition it on whether it responds to that selector:

if ([navBar respondsToSelector:@selector(setBackgroundImage:)])
{
    [navBar setBackgroundImage:[UIImage imageNamed:@"tabbar_brn.jpg"]];
}
else
{
    // ios 4 code here
}
相守太难 2025-01-15 20:24:04

只需直接在导航栏实例上使用外观方法,而不是在 appearance 代理对象上。

[navBarInstance setBackgroundImage: ... ];

Just use the appearance methods directly on the navigation bar instance instead on the appearance proxy object.

[navBarInstance setBackgroundImage: ... ];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文