iOS8下UITableView的contentsize自动变化问题
博客专区 > yoyoso 的博客 > 博客详情
iOS8下UITableView的contentsize自动变化问题
yoyoso 发表于3年前
iOS8下UITableView的contentsize自动变化问题
  • 发表于 3年前
  • 阅读 5788
  • 收藏 1
  • 点赞 0
  • 评论 1

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: ​ ​遇到一个问题,一个页面中有一个UITableView,在iOS8中点击里面的图片或者链接push到下一个页面再返回时,TableView的底部就被遮盖在屏幕底部了,只有滑动到底部的瞬间能看到。而iOS7的系统上就无此问题。

        遇到一个问题,一个页面中有一个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了,问题得到解决。

共有 人打赏支持
粉丝 47
博文 117
码字总数 42471
评论 (1)
碧野MAX
我现在就是有一个自定义View设置成了TableView的headerView,但是我自定义view里边有几个按钮点击之后会展开,所以每次点击我都要用Autolayout重算一次高度然后重设TableView的headerview,结果就是每次点击展开之后TableView的contentSize的y就会+1,而且是累加的,点击一次就加1,很费解,不知道什么原因
×
yoyoso
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: