关于automaticallyAdjustsScrollViewInsets属性

模拟环境:iphone6(8.3)xcode自带模拟器

模拟环境

情景一:automaticallyAdjustsScrollViewInsets 设置值成默认为YES,UITableView的位置从0,0开始

frame设置

运行结果:


运行结果

图层

结果分析:
显示很正常,但是注意的是,我设置的y值是0,结果UITableView的第一个cell从导航栏下面开始的,而从图层看UITableView的顶点在屏幕的顶部开始,此时UITableView的contentInset发生了改变

情景二:automaticallyAdjustsScrollViewInsets 设置值成NO,UITableView的位置从0,0开始

值为NO

运行结果


运行结果

图层

结果分析:第一个和第二个cell被导航栏遮挡,UITableView的起点是从手机屏幕的0,0点开始,但显然不符合我们正常UI展示

情景三:automaticallyAdjustsScrollViewInsets 设置值成NO,UITableView的位置从0,64开始

frame设置

运行结果


运行结果

图层

结果分析
显示正常,UITableView的图层的顶部从导航栏底部开始

情景四:automaticallyAdjustsScrollViewInsets 设置值成默认为YES,UITableView的位置从0,64开始

frame设置

运行结果


运行结果

图层

结果分析:
UITableView的第一个cell往下偏移了64px的高度,此时UITableView的contentInset发生了改变

总结

从测试结果来看,automaticallyAdjustsScrollViewInsets设置成默认为YES的时候,UITableView第一个cell会往下偏移64px,而设置为NO的时候,我们设置的frame与展示结果一致;
从实质来看,automaticallyAdjustsScrollViewInsets并没有改变frame,而是改变了可滚动区域,contentInset从UIEdgeInsetsMake(0, 0, 0, 0)改变成了UIEdgeInsetsMake(64, 0, 0, 0)

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

推荐阅读更多精彩内容

  • 解决添加到ScrollView上的UITableView控件自动向下偏移64像素的问题 首先理解1:即使UITab...
    CoderZb阅读 10,655评论 1 8
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,795评论 1 32
  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 12,950评论 3 38
  • 足迹 鸟在天空飞过 风在大地吹过 木鱼在幽深处响过 鱼儿在江河湖海游过 一块墓碑 一个名字 这痛并快乐的世界 我来...
    一了0820阅读 2,823评论 3 1
  • 七律【农 夫】 莫道农夫苦味尝,田间绿野有芬芳。 闲时枕上敲诗律,静处街头奏乐章。 檐下随人听雨久,池边伴客钓鱼忙...
    超越世俗阅读 861评论 0 1