如何在UITableView reloadData结束后再进行下一步操作

本文介绍了一个在TableView中更新数据时遇到的问题及解决方法。当需要先reload原有数据再插入新cell时,若未等reload完成就插入新cell,可能会导致数据不一致的问题。通过在reloadData后调用layoutIfNeeded再进行insert操作可以有效避免此问题。

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

      最近在做一个小需求的时候碰了壁,具体情景是:点击一个talbeview的headerview会展开该section下面的cell,需求是要先reload原有的数据,再将新的cell以insert的方式插入进去,原有的section下面的cell关闭。

      看起来很简单,但在做insert的插入后,报错,具体的不记得了,比如第三个section中有新数据插入,在self.tableView endUpdates后,报section 0内的cell数目不对,原来有三条数据,现在有0条。这是为什么呢?我只是修改了section 2的数据源,然后做插入动画,没有对section 0进行更改啊?

      原来是我在reload没有结束时,就进行了insert操作。所以要做的就是要reloadData结束后,再进行insert的动画操作。查了下资料,在reloadData后进行[self.tableView layoutIfNeeded]再insert,错误消失,done~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值