【问题标题】:How can I make my UINavigationController have a clearColor? [duplicate]如何使我的 UINavigationController 具有 clearColor? [复制]
【发布时间】:2013-01-17 01:02:59
【问题描述】:

可能重复:
iPhone SDK - make UINavigationBar transparent

在我的应用程序中,我使用的是通过 Push Segues 包装所有其他视图的 NavigationController。所以我想知道如何将控制器设置为所有视图都有清晰的背景。

我试过了

[self.navigationController.navigationBar setBackgroundColor:[UIColor clearColor]];

但我的视图仍然加载相同的股票颜色条。

非常感谢任何可以给我帮助的人。

【问题讨论】:

标签: ios uinavigationcontroller uinavigationbar uicolor


【解决方案1】:

就像codingNinja所说,你应该继承UINavigationBar并覆盖- (void)drawRect:(CGRect)rect,在这个方法中,你可以使用

[[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.0] set];
UIRectFill(rect);

设置背景颜色清晰。

然后您可以将 YourNavigationBar 用作导航栏。

【讨论】:

  • 感谢代码 sn-p!
【解决方案2】:

如果您指的是viewControllers 附带的导航栏,它是navigationController 的viewControllers 数组的一部分,那么您不能简单地设置它。如果你想拥有清晰的导航栏,最好的方法是只使用没有导航控制器的 viewControllers,并用模态 segues 呈现 viewControllers。您将如何需要自己处理导航,例如从一个视图控制器转到前一个视图控制器、关闭视图控制器等。

您可以子类化导航栏并覆盖drawrect 方法。我个人会尽可能避免使用[UIColor clearColor],以避免混合图层并提高性能。

【讨论】:

  • 我之前做过一个应用程序,我按照您的建议自行管理所有导航。我将尝试对导航栏进行子类化并覆盖drawrect,然后看看会发生什么。感谢您的解释
【解决方案3】:

你设置的不是bar的背景色而是tintColor但是不知道你能不能说清楚。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多