关于automaticallyAdjustsScrollViewInsets属性

模拟环境:iphone6(8.3)xcode自带模拟器 关于automaticallyAdjustsScrollViewInsets属性
文章图片
模拟环境 情景一:automaticallyAdjustsScrollViewInsets 设置值成默认为YES,UITableView的位置从0,0开始 关于automaticallyAdjustsScrollViewInsets属性
文章图片
frame设置 运行结果:

关于automaticallyAdjustsScrollViewInsets属性
文章图片
运行结果
关于automaticallyAdjustsScrollViewInsets属性
文章图片
图层 结果分析:
显示很正常,但是注意的是,我设置的y值是0,结果UITableView的第一个cell从导航栏下面开始的,而从图层看UITableView的顶点在屏幕的顶部开始,此时UITableView的contentInset发生了改变
情景二:automaticallyAdjustsScrollViewInsets 设置值成NO,UITableView的位置从0,0开始 关于automaticallyAdjustsScrollViewInsets属性
文章图片
值为NO 运行结果

关于automaticallyAdjustsScrollViewInsets属性
文章图片
运行结果
关于automaticallyAdjustsScrollViewInsets属性
文章图片
图层 结果分析:第一个和第二个cell被导航栏遮挡,UITableView的起点是从手机屏幕的0,0点开始,但显然不符合我们正常UI展示
情景三:automaticallyAdjustsScrollViewInsets 设置值成NO,UITableView的位置从0,64开始 关于automaticallyAdjustsScrollViewInsets属性
文章图片
frame设置 运行结果

关于automaticallyAdjustsScrollViewInsets属性
文章图片
运行结果
关于automaticallyAdjustsScrollViewInsets属性
文章图片
图层 结果分析
显示正常,UITableView的图层的顶部从导航栏底部开始
情景四:automaticallyAdjustsScrollViewInsets 设置值成默认为YES,UITableView的位置从0,64开始 关于automaticallyAdjustsScrollViewInsets属性
文章图片
frame设置 运行结果

关于automaticallyAdjustsScrollViewInsets属性
文章图片
运行结果
关于automaticallyAdjustsScrollViewInsets属性
文章图片
图层 结果分析:
UITableView的第一个cell往下偏移了64px的高度,此时UITableView的contentInset发生了改变
总结 【关于automaticallyAdjustsScrollViewInsets属性】从测试结果来看,automaticallyAdjustsScrollViewInsets设置成默认为YES的时候,UITableView第一个cell会往下偏移64px,而设置为NO的时候,我们设置的frame与展示结果一致;
从实质来看,automaticallyAdjustsScrollViewInsets并没有改变frame,而是改变了可滚动区域,contentInset从UIEdgeInsetsMake(0, 0, 0, 0)改变成了UIEdgeInsetsMake(64, 0, 0, 0)

    推荐阅读