iOS 修改导航条半透明对UI布局的影响

iOS 7以后在ViewController里面引进了一系列属性用于管理页面布局。

在iOS7后,View的布局是默认全屏的,Navigation Bar默认是半透明的,于是在Navigation Bar下面可以看到底部View视图的背景颜色如图1 。

图1

但是 如果将属性 edgesForExtendedLayout设置成UIRectEdgeNone,表明View是不要扩展到整个屏幕的。页面效果如图2:

图2

对于 automaticallyAdjustsScrollViewInsets 这个属性用于如果页面是ScrollView或者UITableView,通常我们希望ScrollView或者UITableView内容显示是在UINavigation Bar下面。

通过设置edgesForExtendedLayout = UIRectEdgeNone或者self.navigationController.navigationBar.translucent = NO;可以让view的布局从UINavigation Bar下面开始,不过一个副作用就是当页面滑动的时候,view是没有办法占据全屏的。

automaticallyAdjustsScrollViewInsets就可以很好的完成这个需求。可以设置self.automaticallyAdjustsScrollViewInsets = NO;来解决这个问题

另外 若果你的状态栏是半透明的,现在想改为不透明的UI,而布局使用的不包括状态栏的frame 则可以这样设置 self.extendedLayoutIncludesOpaqueBars = YES;// 修改 translucent =NO后对frame的影响。

参考连接:www.th7.cn/Program/IOS/201506/467748.shtml

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 7,325评论 1 14
  • 先声明:以下总结只对ios7及ios7之后才有效~~~ 之前开发过程中偶尔会遇到设置导航栏透明与否或者运行系统版本...
    Qiu_W阅读 5,261评论 0 1
  • 最近项目里有个需求和导航栏的样式定制有关,深入之后发现之前理解的一些概念有些模糊,刚好趁着这次机会全面整理了一下。...
    Kevin追梦先生阅读 3,468评论 0 0
  • 最近项目里有个需求和导航栏的样式定制有关,深入之后发现之前理解的一些概念有些模糊,刚好趁着这次机会全面整理了一下。...
    hi_xgb阅读 10,490评论 4 39
  • 不知道从什么时候开始,仪式成为一种流行文化,“仪式感”也是鸡汤文中不厌其烦提到的一个词。那么,今天我们来研究一下仪...
    了了Vita阅读 4,894评论 0 4