关于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属性】从测试结果来看,automaticallyAdjustsScrollViewInsets设置成默认为YES的时候,UITableView第一个cell会往下偏移64px,而设置为NO的时候,我们设置的frame与展示结果一致;
从实质来看,automaticallyAdjustsScrollViewInsets并没有改变frame,而是改变了可滚动区域,contentInset从UIEdgeInsetsMake(0, 0, 0, 0)改变成了UIEdgeInsetsMake(64, 0, 0, 0)
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- 四首关于旅行记忆的外文歌曲
- 醒不来的梦
- 关于自我为中心的一点感想
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- 关于Ruby的杂想
- 关于读书的思考
- 关于this的一些问题(1)
- 《声之形》
- 关于如何沟通的1/2/3