iOS 導航欄遮擋視圖


導航欄遮蓋視圖

**iOS7 之前: **

  • UINavigationBar 的 translucent 屬性默認 NO。 (導航欄默認完全不透明)

**iOS7 之后: **

  • UINavigationBar 的 translucent 屬性默認 YES。(導航欄默認半透明)
  • UIViewController 多了 extendLayoutIncludesOpaqueBars(default: NO)屬性。
  • UIViewController 多了 edgesForExtendedLayout(default: UIRectEdgeAll)屬性。

說明:extendLayoutIncludesOpaqueBars 延伸布局是否包括不透明的 bar ; edgesForExtendedLayout 延伸布局的樣式,默認上下左右全部延伸。


**問題: **

  • 導航欄默認會遮蔽視圖,因為視圖默認布局為全延伸。

**解決方案: **

  1. 設置(個人用的少)
    self.navigationController.navigationBar.translucent = NO;

  2. 設置

    self.extendedLayoutIncludesOpaqueBars = NO;
    self.edgesForExtendedLayout = UIRectEdgeBottom | UIRectEdgeLeft | UIRectEdgeRight;
    或者
    self.edgesForExtendedLayout = UIRectEdgeNone(視圖布局時不向任何方向延伸)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM