UINavigationBar背景色透明度

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;

通过这个设置后出现了一个新的问题

Paste_Image.png

整个视图往下偏移了64像素,64像素刚好是导航栏的高度。

解决该问题的方法是:

self.extendedLayoutIncludesOpaqueBars = YES;

translucent = NO的时候(导航栏背景色不透明)
extendedLayoutIncludesOpaqueBars=NO, self.view起始点位0, 64
extendedLayoutIncludesOpaqueBars=YES, self.view起始点位0, 0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容