【问题标题】:tvOS: UItableViewCell.detailsTextLabel not appearing when zero length string set as valuetvOS:当零长度字符串设置为值时,UItableViewCell.detailsTextLabel 不出现
【发布时间】:2016-11-24 04:13:35
【问题描述】:

直接来自 tvOS WT* Magazine 的页面 ...

我有一个带有静态单元格的UITableView。该单元格的样式设置为 Right Detail,它将两个标签实例(确切地说是 UITableViewLabels)添加到 textLabeldetailTextLabel 属性。我还在使用自定义表格视图单元格类,因此我可以初始化单元格。

在我的课程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 个字符的字符串,则它会正常运行,并在我更新值时自行调整大小。

有人知道为什么吗?

【问题讨论】:

  • 您是否向我展示了您在项目中使用的完整方法?
  • 这是正常的,如预期的那样,如果文本为nil,标签不会有高度或宽度,如果你需要给它值,你必须通过重新加载或开始强制单元格重新布局/结束更新
  • 刚刚在别处读到这是 iOS 8 中的一个问题,并在 9 中解决。看起来它仍然存在于 tvOS 10 中。

标签: uitableview uikit tvos


【解决方案1】:

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

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

感谢您对此进行调查。

【讨论】:

    猜你喜欢
    • 2012-06-09
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多