tvOS:UItableViewCell.detailsTextLabel 零长度字符串设置为值时不出现
tvOS: UItableViewCell.detailsTextLabel not appearing when zero length string set as value
直接来自 tvOS WT* 杂志的页面...
我有一个带有静态单元格的 UITableView
。该单元格的样式设置为 Right Detail,它向 textLabel
和 detailTextLabel
属性添加了两个标签实例(实际上是 UITableViewLabel
s)。我还使用了自定义 table 视图单元格 class,因此我可以初始化单元格。
在我的 classes awakefromNib
中,我设置 detailTextLabel
的值是这样的:
NSString *detailValue = .... // loaded from somewhere else.
self.detailTextLabel.text = detailValue;
这是它变得奇怪了。如果 detailValue
是 nil
或 @""
,则详细信息标签永远不会出现在 UI 上。如果我通过 Reveal 查看 UI,它就会从视图层次结构中消失。
如果我尝试然后这样设置:
self.detailTextLabel.text = @"abc";
它仍然没有出现。最奇怪的是,detailTextLabel
属性 有一个 UITableViewCell
实例,其文本值为 abc
,但大小为 {0,0}。
但是,如果 detailTextValue
的初始值设置为至少 1 个字符的字符串,那么它会正常运行,并在我更新值时自行调整大小。
有人知道为什么吗?
通过在初始显示后设置标签时添加以下代码修复。
if (self.detailTextLabel.superview == nil) {
[self setNeedsLayout];
}
感谢您的关注。
直接来自 tvOS WT* 杂志的页面...
我有一个带有静态单元格的 UITableView
。该单元格的样式设置为 Right Detail,它向 textLabel
和 detailTextLabel
属性添加了两个标签实例(实际上是 UITableViewLabel
s)。我还使用了自定义 table 视图单元格 class,因此我可以初始化单元格。
在我的 classes awakefromNib
中,我设置 detailTextLabel
的值是这样的:
NSString *detailValue = .... // loaded from somewhere else.
self.detailTextLabel.text = detailValue;
这是它变得奇怪了。如果 detailValue
是 nil
或 @""
,则详细信息标签永远不会出现在 UI 上。如果我通过 Reveal 查看 UI,它就会从视图层次结构中消失。
如果我尝试然后这样设置:
self.detailTextLabel.text = @"abc";
它仍然没有出现。最奇怪的是,detailTextLabel
属性 有一个 UITableViewCell
实例,其文本值为 abc
,但大小为 {0,0}。
但是,如果 detailTextValue
的初始值设置为至少 1 个字符的字符串,那么它会正常运行,并在我更新值时自行调整大小。
有人知道为什么吗?
通过在初始显示后设置标签时添加以下代码修复。
if (self.detailTextLabel.superview == nil) {
[self setNeedsLayout];
}
感谢您的关注。