如何让我的UINavigationController有一个clearColor?

时间:2013-01-17 01:02:59

标签: ios uinavigationcontroller uinavigationbar uicolor

  

可能重复:
  iPhone SDK - make UINavigationBar transparent

在我的应用程序中,我正在使用一个NavigationController,它通过Push Segues包装所有其他视图。所以我想知道如何设置控制器以获得所有视图的清晰背景。

我试过

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

但我的视图仍然装有相同的库存颜色条。

非常感谢那些可以给我一些帮助的人。

3 个答案:

答案 0 :(得分:2)

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

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

将背景颜色设置为清晰。

然后您可以将YourNavigationBar用作navigationBar。

答案 1 :(得分:0)

您没有设置条形图的背景颜色,而是设置tintColor,但我不知道您是否能够清除它。

答案 2 :(得分:0)

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

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