iOS学习笔记

UINavigationBar背景色透明度

2017-03-10  本文已影响78人  山是水的故事

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

上一篇 下一篇

猜你喜欢

热点阅读