tvOS:UItableViewCell.detailsTextLabel 零长度字符串设置为值时不出现

tvOS: UItableViewCell.detailsTextLabel not appearing when zero length string set as value

直接来自 tvOS WT* 杂志的页面...

我有一个带有静态单元格的 UITableView。该单元格的样式设置为 Right Detail,它向 textLabeldetailTextLabel 属性添加了两个标签实例(实际上是 UITableViewLabels)。我还使用了自定义 table 视图单元格 class,因此我可以初始化单元格。

在我的 classes awakefromNib 中,我设置 detailTextLabel 的值是这样的:

NSString *detailValue = .... // loaded from somewhere else.
self.detailTextLabel.text = detailValue;

这是它变得奇怪了。如果 detailValuenil@"",则详细信息标签永远不会出现在 UI 上。如果我通过 Reveal 查看 UI,它就会从视图层次结构中消失。

如果我尝试然后这样设置:

self.detailTextLabel.text = @"abc";

它仍然没有出现。最奇怪的是,detailTextLabel 属性 有一个 UITableViewCell 实例,其文本值为 abc,但大小为 {0,0}。

但是,如果 detailTextValue 的初始值设置为至少 1 个字符的字符串,那么它会正常运行,并在我更新值时自行调整大小。

有人知道为什么吗?

通过在初始显示后设置标签时添加以下代码修复。

    if (self.detailTextLabel.superview == nil) {
        [self setNeedsLayout];
    }

感谢您的关注。