关于automaticallyAdjustsScrollViewInsets属性

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

模拟环境

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

关于automaticallyAdjustsScrollViewInsets属性_第1张图片
frame设置

运行结果:


关于automaticallyAdjustsScrollViewInsets属性_第2张图片
运行结果

关于automaticallyAdjustsScrollViewInsets属性_第3张图片
图层

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

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

关于automaticallyAdjustsScrollViewInsets属性_第4张图片
值为NO

运行结果


关于automaticallyAdjustsScrollViewInsets属性_第5张图片
运行结果

关于automaticallyAdjustsScrollViewInsets属性_第6张图片
图层

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

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

关于automaticallyAdjustsScrollViewInsets属性_第7张图片
frame设置

运行结果


关于automaticallyAdjustsScrollViewInsets属性_第8张图片
运行结果

关于automaticallyAdjustsScrollViewInsets属性_第9张图片
图层

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

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

关于automaticallyAdjustsScrollViewInsets属性_第10张图片
frame设置

运行结果


关于automaticallyAdjustsScrollViewInsets属性_第11张图片
运行结果

关于automaticallyAdjustsScrollViewInsets属性_第12张图片
图层

结果分析:
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)

你可能感兴趣的:(关于automaticallyAdjustsScrollViewInsets属性)