Ios 新UITableViewCell未调用子视图drawRect()
在过去的两天里,我一直有这个问题,我正在努力想办法解决它,但没有什么好结果 我有一个带有自定义Ios 新UITableViewCell未调用子视图drawRect(),ios,iphone,uitableview,swift,uiview,Ios,Iphone,Uitableview,Swift,Uiview,在过去的两天里,我一直有这个问题,我正在努力想办法解决它,但没有什么好结果 我有一个带有自定义UITableViewCell的UITableView。在UITableViewCell中,我有一个自定义的UIView,我通过调用它自己的drawRect对其进行子类化并绘制它 重用单元格的绘图没有问题,单元格正在调用自己的drawRect,自定义子视图也在调用自己的drawRect 当一个新的单元格出列时,问题就会出现,自定义子视图drawRect根本不会被调用,而该视图为空(不可见) 我所做的:
UITableViewCell
的UITableView
。在UITableViewCell
中,我有一个自定义的UIView
,我通过调用它自己的drawRect
对其进行子类化并绘制它
重用单元格的绘图没有问题,单元格正在调用自己的drawRect
,自定义子视图也在调用自己的drawRect
当一个新的单元格出列时,问题就会出现,自定义子视图drawRect
根本不会被调用,而该视图为空(不可见)
我所做的:
- 调用
无效,它会重新绘制重用单元格的自定义子视图,但不会影响绘制较新单元格的自定义子视图子视图.setNeedsDisplay
有没有办法强制为新的
UItableViewCell
的子视图绘图?您是否尝试调用[cell setNeedsDisplay]
但是在主线程上?我成功地解决了这个问题,并通过实现heightforrowatinexpath
来强制重画自定义单元格的子视图,而不考虑iOS版本(>=7)
显然,iOS在计算高度后会重新绘制单元格 我试着调用这两个函数:单元格和子视图,它似乎只是停留在重新绘制重用的单元格上,但我的意思是在主线程中:dispatch_async(dispatch_get_main_queue(),^{[cell setNeedsDisplay]});是的,那个。我试过了,但在新单元格中重画子视图没有任何影响。你会将其称为何处?我正在
cellForRowAtIndexPath
上讨论它,我不确定我是否理解正确,您想调用cell的drawRect还是子视图的drawRect?如果是单元格,则应该是这样,否则,如果是子视图,则执行相同的操作,但调用其setNeedsDisplay:dispatch_async(dispatch_get_main_queue(),^{[cell.yourSubView setNeedsDisplay]});