如果用户确实在iPhone设置中选择了另一种字体大小,我试图让表格视图的内容能够改变其字体大小。我设法通过输入以下代码来实现它:
//(Start)Updating font size
UIFont *font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
cell.textLabel.font = font;
//(END)
但它不会自动更新表视图的内容,我需要点击它来执行更改。我很确定我的解决方案不是正确的,所以你可以通过告诉我们实现目标的正确方法来帮助你。
以下是完整代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath(NSIndexPath *)indexPath
{
static NSString * kGroupsTableViewCell = @"kGroupsTableViewCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kGroupsTableViewCell];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kGroupsTableViewCell];
}
TGroup * group = [self.groupsArray objectAtIndex:indexPath.row];
cell.textLabel.text = group.name;
//(Start)Updating font size
UIFont *font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
cell.textLabel.font = font;
//(END)
if ([self.selectedGroups containsObject:group.uid]) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
} else {
cell.accessoryType = UITableViewCellAccessoryNone;
}
return cell;
}
答案 0 :(得分:0)
您只需订阅尺寸更改通知并重新加载表格即可。
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self.tableView
selector:@selector(reloadData)
name:UIContentSizeCategoryDidChangeNotification
object:nil];
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self.tableView];
}