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 に答える