项目进行到一定程度了,需求要将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
网友评论