iOS8下UITableView的contentsize自动变化问题

本文探讨了在iOS8系统中,当从含有自定义视图的UITableView页面返回时,该视图大小自动调整导致底部被遮挡的现象。通过分析原因,发现是由于自动计算contentsize时未考虑自定义视图的影响。解决方案是在使用UITableView时避免人为设置contentsize,并利用tableview的tableHeaderView属性来管理自定义视图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

转载于:https://my.oschina.net/ioslighter/blog/383840

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值