[Xcode 8.3] Dynamic Typeをテキストコンポーネントに自動反映する設定をInterface Builderで行う

2017.03.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。モバイルアプリサービス部の平屋です。

本記事では、Dynamic Typeをテキストコンポーネントに自動反映する設定をInterface Builderで行う方法を紹介します。

「Dynamic Typeの概要」や「自動反映設定をコードで実装する方法」については以下の記事で紹介していますので、あわせてご覧ください!

[iOS 10] Dynamic Type の変更点について

検証環境

  • macOS Sierra Version 10.12.3
  • Xcode Version 8.3
  • iPhone 6s, iOS 10.3

フォントの自動調整

こちらの記事で紹介した通り、iOS 10で追加されたadjustsFontForContentSizeCategoryプロパティを使用すれば、Dynamic Typeの値を、テキストコンポーネントのフォント設定に自動反映することができます。

adjustsFontForContentSizeCategoryプロパティはUIContentSizeCategoryAdjustingプロトコルで定義されていて、このプロトコルは、UILabel, UITextField, UITextViewに採用されています。自動反映の機能はUILabel, UITextField, UITextViewで利用できます。

そして、Xcode 8.3でInterface Builderを使用してadjustsFontForContentSizeCategoryを有効にすることが出来るようになりました。

Interface Builder

Interface Builder supports setting adjustsFontForContentSizeCategory to automatically adjust the size of text as the Dynamic Type setting changes. (25543597)

Xcode Release Notes

設定手順

Interface Builder上でラベル(またはテキストフィールド、テキストビュー)を選択し、「Automatically Adjust Font」にチェックを入れます。

必要な操作はこれだけです。

動作確認

iOS 標準の「設定アプリ」で文字サイズ設定を変更し、検証用のアプリに再び切り替えるという操作を行うと、検証用アプリがアクティブになったタイミングで、自動でフォントサイズが変わりました。

こちらの記事で紹介した方法(コードで実装した場合)と結果は同じです。

さいごに

本記事では、Dynamic Typeをテキストコンポーネントに自動反映する設定をInterface Builderで行う方法を紹介しました。

今回使用した検証用アプリのコードは以下のリポジトリで公開していますのであわせてご覧ください!

参考資料