4

当我尝试从我的应用程序的设置可访问性中实现用户选择的文本字体时,无法将用户选择的文本大小放入我的应用程序。代码就像

let contentSize = UIApplication.sharedApplication().preferredContentSizeCategory

preferredContentSizeCategory 始终返回与UICTContentSizeCategoryL相同的字体,即使在更改设置/可访问性之后也是如此

4

1 回答 1

11

将以下代码添加到您的 viewDidLoad 以在字体大小从设置可访问性更改时收到通知。

[[NSNotificationCenter defaultCenter]
                              addObserver:self
                                 selector:@selector(preferredContentSizeChanged:)
                                     name:UIContentSizeCategoryDidChangeNotification
                                   object:nil];

接下来,添加以下方法:

- (void)preferredContentSizeChanged:(NSNotification *)notification {
    self.textView.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
}

这只是根据新的首选大小将文本视图字体设置为一种。

注意:您可能想知道为什么您似乎将字体设置为与以前相同的值。当用户更改首选字体大小时,您必须再次请求首选字体;它不会自动更新。当字体首选项更改时,通过 preferredFontForTextStyle: 返回的字体会有所不同。

编辑:

参考这篇文章:https ://stackoverflow.com/a/20510095/5756850

更喜欢使用真机测试[UIApplication sharedApplication].preferredContentSizeCategory;

于 2016-04-13T12:06:27.323 回答