IOS7状态栏遮盖问题分析解决

IOS7以后,遇到了状态栏被导航栏(UINavigationBar)遮住的问题。以下是原理和解决方法:


分析:

首先,iOS7的导航栏默认是半透明的

iOS7中UIViewController新增的属性extendLayoutIncludesOpaqueBars和edgesForExtendedLayout。

extendLayoutIncludesOpaqueBars ---- 指定了当bar使用不透明图片时,试图是否延伸至bar所在区域,默认值为NO。

edgesForExtendedLayout ---- 表示视图是否覆盖到四周的区域,默认是UIRectEdgeAll,即上下左右四个方向都会覆盖。


解决:

1. 可以直接把导航栏设置成不透明的:

self.navigationController.navigationBar.translucent = NO;   直接搞定!

2.如果导航栏必须是半透明的,那就这样搞定:

self.extendedLayoutIncludesOpaqueBars = NO;
self.edgesForExtendedLayout =UIRectEdgeNone;


你可能感兴趣的:(导航,ios7)