这个问题让我发疯。UITableViewCell子视图不会显示,直到重绘
我有原型的UITableViewCell在我的故事板。它包含一堆子视图。其中一个子视图UILabel是行为不端的行为。
当tableview加载并首次显示时,所有单元格看起来都很好。但是,随着tableview向下滚动,最终其中一个单元显示没有UILabel子视图。它似乎总是第一个被回收的细胞。
但是,如果我继续向下滚动tableview,一旦行为不合格的单元格被tableview顶部剪切(当它开始从屏幕顶部滚动时),标签就会如其应该显示。
所以看起来标签在那里,它接收到我在我的cellForRowAtIndexPath方法中分配给它的字符串。这只是因为某种原因没有得到。我试过在各个地方插入setNeedsDisplay消息,但这并没有帮助。
什么也奇怪的是,我使用的是同样的子类的UITableViewCell用在不同的视图控制器故事板重复视图层次,在那里我没有任何麻烦。
有人对我如何开始解开这个谜题有一些想法吗?
谢谢!
你修改表格单元格或子视图后,您初始化中的tableView:的cellForRowAtIndexPath? – 2012-02-08 16:23:23
我是。我设置标签的文本,并与其他自定义UIView子类一起做其他事情。所有这一切都很好。这只是UILabel,没有得到绘制。 – CharlieMezak 2012-02-08 16:47:27
我遇到了类似的事情。在一个特定的单元格上,一个标签不会被绘制。如果我在代码中断,单元格看起来非常好。如果我做了setNeedsDisplay,它就会显示出来。使我抓狂! – jasongregori 2012-02-11 04:10:40