在我的应用程序中,我使用的是通过 Push Segues 包装所有其他视图的 NavigationController。所以我想知道如何将控制器设置为所有视图都有清晰的背景。
我试过
[self.navigationController.navigationBar setBackgroundColor:[UIColor clearColor]];
但我的视图仍然加载相同的库存颜色条。
任何可以给我一些帮助的人都非常感谢。
在我的应用程序中,我使用的是通过 Push Segues 包装所有其他视图的 NavigationController。所以我想知道如何将控制器设置为所有视图都有清晰的背景。
我试过
[self.navigationController.navigationBar setBackgroundColor:[UIColor clearColor]];
但我的视图仍然加载相同的库存颜色条。
任何可以给我一些帮助的人都非常感谢。
就像codingNinja说的,你应该继承UINavigationBar
和覆盖- (void)drawRect:(CGRect)rect
,在这个方法中,你可以使用
[[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.0] set];
UIRectFill(rect);
将背景颜色设置为清晰。
然后您可以将 YourNavigationBar 用作导航栏。
您没有设置栏的背景颜色,而是设置 tintColor 但我不知道您是否能够说清楚。
如果您指的是 viewControllers 附带的导航栏,它是 navigationController 的 viewControllers 数组的一部分,那么您不能简单地设置它。如果你想拥有清晰的导航栏,最好的方法是只使用没有导航控制器的 viewControllers,并用模态 segues 呈现 viewControllers。您将需要自己处理导航,例如从一个视图控制器转到前一个视图控制器,关闭视图控制器等。
您可以子类化导航栏并覆盖该drawrect
方法。我个人会[UIColor clearColor]
尽可能避免使用混合图层并提高性能。