新建一个Proj, 将tableViewController的autoAjustScrollViewInset设置为false, 运行
image.png
表现
2017-06-25 14_55_04.gif
tableHeaderView是从NavigationBar的底部开始算起的.
Reveal 里面 TableView.frame.origin = .zero
tableHeaderView.frame.origin = .zero
image.png图1: tableHeaderView
image.png图2: tableView
image.png图3: tableView
我们看到前面已经设置了"自动调整scrollViewInset"属性为false, tableView的inset确实是 .zero(图3), 变得是tableView的offset, 而offset的改变就是因为bounds.
图2中看到tableView.bounds.y = -64 ,这相当于在tableView的坐标系中左上角(原点)对于tableView的subviews来讲坐标是{0, -64}, 而tableHeaderView.origon是{0, 0}, 所以向下偏移了64.
至于offset, 这个属性的本质其实是就是更直观的描述bounds的属性, 有兴趣的同学可以去看看ScrollView的实现: https://objccn.io/issue-3-2/
最后用代码实现得时候才发现原来 iOS11 改用这个方法了 泪奔, autoAdjustScrollVeiwInset 已经失效
image.png
网友评论