今天忽然发现了一个列表展示的bug,具体情景比较坑爹:未登录状态下请求列表数据,无法显示最后一条数据,只能拖拽tableView才能看见,一松手就又弹回去了。下面附带上效果图:
于是乎我就往tableView的frame以及contentInset方面考虑,结果发现:
automaticallyAdjustsScrollViewInsets 已经设置过了
frame没问题,也已经将navigationBar等高度都考虑进去了
至于contentInset,我根本没有设置,而且出现诡异的情况是,只有未登录状态下第一页的数据如此,加载更多页或者登录状态下,毛线问题都没有,那么我就郁闷了,结果觉得可能是tableView contentSize的问题,tableView是根据内容高度去设置contentSize的,我之前处理的cell高度计算是放到了cell中,故此,我将高度返回了一个定值,结果问题不见了,所以最终得出的结论是在cell中计算高度耗时,导致布局出现混乱,于是我就将cell高度放到了model中,结果问题完美解决。
最后总结:出现tableView显示不全或者最后一行不显示的问题,从以下几个方面查找:
- automaticallyAdjustsScrollViewInsets 查看这个属性是否置为NO
2.查看tableView的frame,看是否设置有误
3.尝试在cell高度上测试一番
ps:通过这次bug教训,以后关于列表cell高度计算复杂问题,还是妥帖的老老实实放到model中去吧