【发布时间】:2012-03-30 13:54:07
【问题描述】:
我正在使用静态 UITableview,设置在情节提要中。对于某些单元格(样式 = 右细节),我在 viewWillAppear 中设置了 detailTextlabel.text,如下所示:
self.recentProductsCell.detailTextLabel.text = description;
对于这个单元格,标签不会出现。如果我 NSLog 显示的文本没问题。 我检查了 detailTextLabel 没有隐藏。 我没有更改情节提要中的任何其他属性。 该单元格有一个 detailDisclosure 附件,但将其设置为其他内容并没有帮助。
然后奇怪的事情: 如果我运行并且没有显示 detailTextlabel,我通过点击它并移动我的手指来选择该行。从那时起,detailTextLabel 确实显示了!即使隐藏和重新显示视图,标签仍然可见。然而,在代码中重置和设置它会使标签再次消失。
我可能做错了什么,或者这是一个错误?
已编辑:在 5.0 和 5.1 中均已检查,行为相同。 通过在 viewWillAppear 中的代码中选择和取消选择这一行,我发现了一个丑陋的解决方法。所以我补充说:
[self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:3 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone];
[self.tableView deselectRowAtIndexPath: [NSIndexPath indexPathForRow:3 inSection:0] animated:NO];
它有效,但我可以看到该行被选中和取消选中。所以我也更改了 selectionStyle,但是现在显示视图时这一行会闪烁。
补充说明:在同一个viewWillAppear中,我设置了其他静态单元格的detailLabel,它们显示得很好。
【问题讨论】:
-
您能否发布相关代码(如果有)以用于单元格的创建和重用?关于为什么会发生这种行为,我仍然有一些理论,但我需要查看更多代码来确定它。
-
对不起。也许复活节过后,小假期就要来了。我觉得很奇怪,我想尝试从头开始在项目构建中重现并向 Apple 提交错误报告。只是为了体验。但这需要一些时间。也许星期二。感谢您现在的关注。
标签: iphone uitableview