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