新的UITableViewCell没有调用子视图drawRect()

时间:2015-04-07 14:03:49

标签: ios iphone uitableview swift uiview

过去两天我遇到了这个问题,而且我试图解决这个问题并没有取得好成绩。

我有UITableView个自定义UITableViewCell。在UITableViewCell内部,我有一个自定义UIView,我将其归类并通过调用自己的drawRect来绘制它。

重复使用的单元格的绘图没有问题,单元格正在调用自己的drawRect,自定义子视图也调用自己的drawRect

当新单元格出列时出现问题,根本不调用自定义子视图drawRect,使该视图为空(不可见)

我做了什么:

  • 调用subview.setNeedsDisplay无效,它会重新绘制重复使用的单元格'自定义子视图,但它对绘制较新的单元格没有影响。自定义子视图。

这是我唯一想到的,并且很明显可以尝试。

有没有办法强制绘制新UItableViewCell的子视图?

2 个答案:

答案 0 :(得分:2)

您是否尝试过在主线程上调用[cell setNeedsDisplay]

答案 1 :(得分:0)

我设法解决了这个问题,并通过实施heightForRowAtIndexPath强制重新绘制自定义单元格的子视图,而不管iOS版本(> = 7)

显然,iOS会在计算高度后重绘单元格。