iOS 7 で自分のアプリに Dynamic Type のサポートを追加しています。現在、ユーザーがシステム フォント サイズを変更し、アプリを終了して再度開くと、アプリは快適に更新されます。ただし、アプリを起動しただけでは、機能しないようです。
オブザーバーを追加しました:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(contentSizeDidChange) name:UIContentSizeCategoryDidChangeNotification object:nil];
ユーザーがサイズを変更すると、次のメソッドが呼び出されます。
- (void)contentSizeDidChange {
[self.tableView invalidateIntrinsicContentSize];
[self.tableView reloadData];
}
しかし、セルの文字サイズはまったく変わりません (セルの高さは変わりますが)。これは、セルの UITableViewCell をサブクラス化したためですか?
編集:
UITableViewCell
サブクラスにあるものは次のとおりです。
- (void)contentSizeDidChange {
self.fullCellURLLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline];
self.timeLeftLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline];
self.timeLeftLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];
self.fullCellPreviewLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline];
}