UITableViewCell 的详细文本标签在用户触摸之前是不可见的
Detail text label of UITableViewCell is invisible till user touches it
我在静态和分组的 tableView 中设置了 UITableViewCell。单元格的样式是副标题,我将它的初始值设置为这样(无论我使用哪个,问题都一样):
self.myCell.detailTextLabel.text = [NSString stringWithFormat:@"%f test", testFloat]];
或者像这样:
self.myCell.detailTextLabel.text = @"not set";
单元格的 detailTextLabel 在我将手指放在上面之前是不可见的,我什至不必松开它,只需将它放在单元格上,它就会变成深灰色。
设置初始单元格文本后,我在 viewWillAppear 中尝试了这两个,问题仍然存在:
[self.myCell setNeedsLayout];
[self.myCell setNeedsDisplay];
有人知道这是为什么吗?我该如何解决?
非常感谢!
更新:
正确显示的标签:
显示不正确的标签:
这是一个已知的 iOS 8 错误,如果字幕以 nil 开始,则最初不会出现。
如果您确保 detailTextLabel
永远不会为 nil(或空),即使在 Storyboard 中,它也应该始终最初出现。
如果您有一些没有字幕的单元格,您需要将其设置为空白 space,而不是 nil,否则问题将再次触发。
(Apple 引入了一个 "optimization" 错误,如果标签似乎没有被使用,它会被删除它的超级视图。因此,对于第一个布局通道,它被添加回来为时已晚,无法正确使用大小,一旦你给它分配了一个非零字符串。与单元格交互会导致它被突出显示,这就是标签在那个时候正确显示的原因。)
我在静态和分组的 tableView 中设置了 UITableViewCell。单元格的样式是副标题,我将它的初始值设置为这样(无论我使用哪个,问题都一样):
self.myCell.detailTextLabel.text = [NSString stringWithFormat:@"%f test", testFloat]];
或者像这样:
self.myCell.detailTextLabel.text = @"not set";
单元格的 detailTextLabel 在我将手指放在上面之前是不可见的,我什至不必松开它,只需将它放在单元格上,它就会变成深灰色。
设置初始单元格文本后,我在 viewWillAppear 中尝试了这两个,问题仍然存在:
[self.myCell setNeedsLayout];
[self.myCell setNeedsDisplay];
有人知道这是为什么吗?我该如何解决?
非常感谢!
更新:
正确显示的标签:
显示不正确的标签:
这是一个已知的 iOS 8 错误,如果字幕以 nil 开始,则最初不会出现。
如果您确保 detailTextLabel
永远不会为 nil(或空),即使在 Storyboard 中,它也应该始终最初出现。
如果您有一些没有字幕的单元格,您需要将其设置为空白 space,而不是 nil,否则问题将再次触发。
(Apple 引入了一个 "optimization" 错误,如果标签似乎没有被使用,它会被删除它的超级视图。因此,对于第一个布局通道,它被添加回来为时已晚,无法正确使用大小,一旦你给它分配了一个非零字符串。与单元格交互会导致它被突出显示,这就是标签在那个时候正确显示的原因。)