導航欄遮蓋視圖
**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(視圖布局時不向任何方向延伸)
