我正在使用自定义UITableViewCell
和自定义xib。为支持动态类型,我通过在UIContentSizeCategoryDidChangeNotification
viewDidLoad()
func didChangeContentSizeCategory(notification: NSNotification)
{
// Dynamic Type preferences were updated. Reload UI.
myTableView.reloadData()
}
我的自定义xibs使用Interface Builder中的字体描述符:
即使触发了此通知(使用断点进行测试)并且调用了myTableView
的{{1}}方法,它也不会更新标签的内容以使用新值。
根据我的理解,这应该可以在我不做任何其他事情的情况下工作,是吗?
答案 0 :(得分:1)
使用自动布局和自行调整大小单元时,UITableView
中动态类型的自动支持有效。
因此,如果您不这样做,则可能需要在重新计算单元格的任何位置显式更新单元格的UILabel
字体属性,因为reloadData()
似乎没有这样做。
例如,在cellForRowAtIndexPath:
调用中返回您的单元格之前:
cell.headline.font = UIFont.preferredFontForTextStyle(UIFontTextStyleHeadline)
因此,当发布UIContentSizeCategoryDidChangeNotification
时,即使应用正在运行,它也会明确触发字体更新。