导航栏遮盖视图
**iOS7 之前: **
- UINavigationBar 的 translucent 属性默认 NO。 (导航栏默认完全不透明)
**iOS7 之后: **
- UINavigationBar 的 translucent 属性默认 YES。(导航栏默认半透明)
- UIViewController 多了 extendLayoutIncludesOpaqueBars(default: NO)属性。
- UIViewController 多了 edgesForExtendedLayout(default: UIRectEdgeAll)属性。
说明:extendLayoutIncludesOpaqueBars 延伸布局是否包括不透明的 bar ; edgesForExtendedLayout 延伸布局的样式,默认上下左右全部延伸。
**问题: **
- 导航栏默认会遮蔽视图,因为视图默认布局为全延伸。
**解决方案: **
-
设置(个人用的少)
self.navigationController.navigationBar.translucent = NO;
-
设置
self.extendedLayoutIncludesOpaqueBars = NO;
self.edgesForExtendedLayout = UIRectEdgeBottom | UIRectEdgeLeft | UIRectEdgeRight;
或者
self.edgesForExtendedLayout = UIRectEdgeNone
(视图布局时不向任何方向延伸)