美文网首页
NavigationBar的translucent属性设置为NO

NavigationBar的translucent属性设置为NO

作者: 请叫我林木木 | 来源:发表于2016-10-27 16:51 被阅读238次

    项目进行到一定程度了,需求要将NavigationBar的颜色改成与下方view的颜色相同,大家也都知道,同一个颜色值,NavigationBar显示和普通view显示出来的效果是不一样的,这与NavigationBar的translucent属性有关,iOS7后默认为YES。
    若想要显示效果一样,就需要设置translucent为NO。

     [[UINavigationBar appearance] setTranslucent:NO];
    

    当以为成功的时候,尴尬的发现,不仅坐标变化,之前写的控件下移64,还有一条难看的黑线,(下图仅显示坐标变化)

    屏幕快照 2016-10-27 下午4.40.31.png

    解决黑线问题可添加如下代码

    [[UINavigationBar appearance] setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
    [[UINavigationBar appearance] setShadowImage:[UIImage new]];
    

    坐标问题总不能每一个控件全都改坐标吧,网上找了好一会,可以一句话完美解决,不用修改任何坐标

    self.extendedLayoutIncludesOpaqueBars = YES;
    

    效果如下

    屏幕快照 2016-10-27 下午4.48.42.png

    相关文章

      网友评论

          本文标题:NavigationBar的translucent属性设置为NO

          本文链接:https://www.haomeiwen.com/subject/hmhsuttx.html