来自设置的辅助功能大文本

Lak*_*ddy 4 iphone mobile accessibility dynamic-text ios

当我尝试从我的应用程序中的设置辅助功能实现用户选择的文本字体时,无法将用户选择的文本大小输入到我的应用程序中.代码就像

let contentSize = UIApplication.sharedApplication().preferredContentSizeCategory
Run Code Online (Sandbox Code Playgroud)

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

Din*_*esh 10

将以下代码添加到viewDidLoad,以便在从设置辅助功能更改字体大小时收到通知.

[[NSNotificationCenter defaultCenter]
                              addObserver:self
                                 selector:@selector(preferredContentSizeChanged:)
                                     name:UIContentSizeCategoryDidChangeNotification
                                   object:nil];
Run Code Online (Sandbox Code Playgroud)

接下来,添加以下方法:

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

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

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

编辑:

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

更喜欢使用真实设备进行测试 [UIApplication sharedApplication].preferredContentSizeCategory;