这个问题让我疯狂。
我的故事板中有一个原型UITableViewCell。它包含一堆子视图。其中一个子视图,即UILabel,行为不端。
当tableview加载并首次显示时,所有单元格看起来都很好。但是,随着tableview向下滚动,最终其中一个单元格显示没有UILabel子视图。似乎它始终是第一个被回收的细胞。
但是,如果我继续向下滚动桌面视图,只要行为不正确的单元格被桌面视图的顶部剪切(当它开始从屏幕顶部滚动时),标签就会出现。
所以似乎标签就在那里,它接收我在cellForRowAtIndexPath方法中赋给它的字符串。它只是因为某些原因而没有被绘制出来。我尝试在各个地方插入setNeedsDisplay消息,但这没有帮助。
同样奇怪的是,我在不同的视图控制器中使用故事板中具有重复视图层次结构的UITableViewCell子类,并且我没有遇到任何麻烦。
有人知道如何开始解开这个谜团吗?
谢谢!
答案 0 :(得分:1)
当您使用可重复使用的单元格时,这听起来只是一个问题,这意味着在您准备滚动之前,可重用单元格上的值可能无法设置。