UINavigationBar背景色的问题
设置UINavigationBar背景色的通用方法
[self.navigationBar setTintColor:[UIColor whiteColor]];
[self.navigationBar setBarTintColor:[UIColor egovaColor]];
[self.navigationBar setTitleTextAttributes:
@{NSFontAttributeName:[UIFont boldSystemFontOfSize:20],
NSForegroundColorAttributeName:[UIColor whiteColor]}];
通过以上的方法,我们能够很简单的设置UINavigationBar颜色,但是我们在使用过程中发现,当UIViewController中的背景色不同的时候,会发现UINavigationBar会有略微的不同。通过xcode工具发现是因为UINavigationBar有透明度,这个透明度通过各种方式都无法处理。
后面发现使用一行简单的代码就能够处理
self.navigationBar.translucent = NO;
通过这个设置后出现了一个新的问题
整个视图往下偏移了64像素,64像素刚好是导航栏的高度。
解决该问题的方法是:
self.extendedLayoutIncludesOpaqueBars = YES;
translucent = NO的时候(导航栏背景色不透明)
extendedLayoutIncludesOpaqueBars=NO, self.view起始点位0, 64
extendedLayoutIncludesOpaqueBars=YES, self.view起始点位0, 0