TableView 的reload 时TableViewCell 的drawRect 问题

安泰平
2023-12-01

我当前的tableview 有一个下拉刷新的功能,而这个下拉刷新,会产生新的数据,而这个数据可能会有表情,最初我只单纯使用了tableview的reload方法

这个时候就有一个问题了

因为我使用了自定义tableviewcell ,也就是写了一个类,继承自tableviecell,然后重写了一下drawRect这个方法,用来绘画有表情时候的数据,而在我下拉刷新的时候,我的表情绘画总是出错,内容总是显示到了tableviewcell的上一条。

最后调试发现,单纯的reload是不会再去每一行都重新调用drawRect,调试到这一点,问题就简单了。

我查找了一下tableviewcell什么时候调用drawRect这个方法,然后有了一系列的文章,大致查看了一下,找到了方法

也就是重用机制的问题,所以我只要在return cell ;这句之前加上一句 [cell setNeedsDisplay];问题解决。

这句代码的含义,也就是重新绘制的意思。

 类似资料: