zoukankan      html  css  js  c++  java
  • [IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets

    在IOS7以后 ViewController 开始使用全屏布局的,而且是默认的行为通常涉及到布局

    就离不开这个属性 edgesForExtendedLayout,它是一个类型为UIExtendedEdge的属性,

    指定边缘要延伸的方向,它的默认值很自然地是UIRectEdgeAll,四周边缘均延伸,就是说,

    如果即使视图中上有navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域。

    因为一般为了不让tableView 不延伸到 navigationBar 下面, 属性设置为 UIRectEdgeNone

    UIRectEdgeAll -- default

    UIRectEdgeNone 

    这时会发现导航栏变灰了,处理如下就OK了

     self.navigationController.navigationBar.translucent = NO;

     

    那 automaticallyAdjustsScrollViewInsets 呢?

    当 automaticallyAdjustsScrollViewInsets 为 NO 时,tableview 是从屏幕的最上边开始,也就是被

    导航栏 & 状态栏覆盖

     

    当 automaticallyAdjustsScrollViewInsets 为 YES 时,也是默认行为,表现就比较正常了,和

    edgesForExtendedLayout = UIRectEdgeNone 有啥区别? 不注意可能很难觉察

    设计师可能一眼就看穿。。。 automaticallyAdjustsScrollViewInsets 为YES 时,

    tableView 上下滑动时,是可以穿过导航栏&状态栏的,在他们下面有淡淡的浅浅红色

    extendedLayoutIncludesOpaqueBars 

    首先看下官方解释,默认 NO, 但是Bar 的默认属性是 透明的。。。也就是说只有在不透明下才有用

    但是,测试结果很软肋,基本区别不大。。。但是对于解决一些Bug 是还是起作用的,比如说SearchBar的

    跳动问题,详情见:http://www.cnblogs.com/skyming/p/4059128.html, 其他UITableView,UIScrollView 位置的

    问题多数和这3属性相关。。

  • 相关阅读:
    SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因
    微软BI 之SSIS 系列
    微软BI 之SSIS 系列
    微软BI 之SSIS 系列
    微软BI 之SSIS 系列
    微软BI 之SSIS 系列
    微软BI 之SSAS 系列
    微软BI 之SSRS 系列
    微软BI 之SSRS 系列
    配置 SQL Server Email 发送以及 Job 的 Notification通知功能
  • 原文地址:https://www.cnblogs.com/Mr-Lin/p/5202896.html
Copyright © 2011-2022 走看看