UITableViewCell子视图直到重绘才显示

时间:2012-02-08 16:16:43

标签: iphone ios uitableview uilabel

这个问题让我疯狂。

我的故事板中有一个原型UITableViewCell。它包含一堆子视图。其中一个子视图,即UILabel,行为不端。

当tableview加载并首次显示时,所有单元格看起来都很好。但是,随着tableview向下滚动,最终其中一个单元格显示没有UILabel子视图。似乎它始终是第一个被回收的细胞。

但是,如果我继续向下滚动桌面视图,只要行为不正确的单元格被桌面视图的顶部剪切(当它开始从屏幕顶部滚动时),标签就会出现。

所以似乎标签就在那里,它接收我在cellForRowAtIndexPath方法中赋给它的字符串。它只是因为某些原因而没有被绘制出来。我尝试在各个地方插入setNeedsDisplay消息,但这没有帮助。

同样奇怪的是,我在不同的视图控制器中使用故事板中具有重复视图层次结构的UITableViewCell子类,并且我没有遇到任何麻烦。

有人知道如何开始解开这个谜团吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

当您使用可重复使用的单元格时,这听起来只是一个问题,这意味着在您准备滚动之前,可重用单元格上的值可能无法设置。