【发布时间】:2014-12-07 11:04:24
【问题描述】:
我有带有基本样式单元格的静态UITableView,默认为 44 高度。每个单元格中都有一个带有正文文本样式的标签。这样我就可以免费获得动态类型行为。
它可以工作,除非:
- 打开应用
- 打开表格视图
- 打开设置并更改文本大小(从大到小)
- 再次打开应用,标签消失。
- 转到另一个视图(返回)并再次打开问题表 — 文本已更改,看起来不错
我设法通过以下 hack 解决了这个问题
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(preferredContentSizeChanged)
name:UIContentSizeCategoryDidChangeNotification object:nil];
}
- (void)preferredContentSizeChanged
{
// adjust the layout of the cells
// for some reason text from labels are disappear
self.statusBarCell.textLabel.text = @"Status bar";
self.itemColorCell.textLabel.text = @"Color";
但我有另一个完全相同的UITableView,但这不起作用。我尝试了细胞和标签的插座。我尝试了reloadData 和setNeedsLayout 方法。
这里是图片。标签为黄色,内容视图为蓝色:
【问题讨论】:
-
这仍然是 iOS 12.1 中的一个错误
-
FWIW,这似乎已在 Xcode 11 / iOS 13 中解决
标签: ios objective-c xcode uitableview accessibility