模拟环境:iphone6(8.3)xcode自带模拟器
情景一:automaticallyAdjustsScrollViewInsets 设置值成默认为YES,UITableView的位置从0,0开始
运行结果:
结果分析:
显示很正常,但是注意的是,我设置的y值是0,结果UITableView的第一个cell从导航栏下面开始的,而从图层看UITableView的顶点在屏幕的顶部开始,此时UITableView的contentInset发生了改变
情景二:automaticallyAdjustsScrollViewInsets 设置值成NO,UITableView的位置从0,0开始
运行结果
结果分析:第一个和第二个cell被导航栏遮挡,UITableView的起点是从手机屏幕的0,0点开始,但显然不符合我们正常UI展示
情景三:automaticallyAdjustsScrollViewInsets 设置值成NO,UITableView的位置从0,64开始
运行结果
结果分析
显示正常,UITableView的图层的顶部从导航栏底部开始
情景四:automaticallyAdjustsScrollViewInsets 设置值成默认为YES,UITableView的位置从0,64开始
运行结果
结果分析:
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)