遇到一个问题,一个页面中有一个UITableView,在iOS8中点击里面的图片或者链接push到下一个页面再返回时,TableView的底部就被遮盖在屏幕底部了,只有滑动到底部的瞬间能看到。而iOS7的系统上就无此问题。
简单的定位了一下,是在返回的时候UITableView的contentsize自动变小了,初次接触到此问题,觉得颇为离奇,因为在返回后代码对contentsize没做任何修改。那么,就是系统自动对contentsize修改了?
搜索到了这篇文章:(iOS)关于UITableView设置contentsize,大概知道原因了,UITableView的contentsize一般都是自动计算的,就算你修改了之后总会在某个时机会重新自动计算,大概返回的时候就触发了这个自动计算。
看了一下前人的代码,的确有人为设置contentsize的地方,那么,现在就好办了,避免人为设置就行了。之所以需要设置contentsize是因为在TableView的顶部增加了一个自定义的View,这个view是通过tableview addsubview添加进去的并且进行了setContentInset。而TableView在自动计算contentsize时是不会把这个自定义View计算进去的。
想起tableview有一个tableheaderview属性,我通过这个属性添加自定义View,就无需自己计算contentSize了,问题得到解决。
时间: 2024-10-13 21:27:55