iPhone を新規購入して初期設定するとき、画面表示の拡大を選ぶ項目があったのを覚えているでしょうか。標準のままで利用している、もしくは初期設定時に聞かれるので、その設定を忘れた方もいるでしょう。
この画像は「iPhone の利用開始設定をする(データ復元を行わない場合) | スマートフォン・携帯電話 | ソフトバンク https://www.softbank.jp/mobile/support/iphone/activation/new/ 」から引用しました
これは画面表示に関するアクセシビリティの1つです。表示に関連するアクセシビリティは、その他にも、文字のサイズやスタイルの変更があります。個人的な感想ですが、画面表示を見やすく・読みやすくしたい場合は、拡大表示よりその文字サイズ変更を利用・意識される方が多いと考えます。
iPhone の設定アプリで「画面表示と明るさ」を開くと、文字のサイズやスタイルを変更する機能がスクロール不要でページ上部に表示されます。一方で「拡大表示」はその画面の最下部にあります。また、拡大表示には「文字を拡大」と書かれおり、「文字のサイズやスタイルを変更」と「拡大表示」は同じ機能を提供すると認識されるでしょう。
「画面表示と明るさ」の上部 | 「画面表示と明るさ」の最下部 | 拡大表示 |
---|---|---|
![]() |
![]() |
![]() |
何が言いたいというと、アクセシビリティという特性と類似した機能説明から、我々エンジニアでも「拡大表示」の設定を意識しずらいと考えます。
アクセシビリティといえば、文字の大きさは一番最初の例として取り上げられることが多いです。テキスト表示に関する記事などで、ダイナミックタイプを説明されているのをしばしば見かけます。一方で拡大表示はあまり見かけません。
しかしながら、その「拡大表示」を利用されている方は必ず居ます。この「拡大表示」は癖がある設定で、私も幾度も悩まされました。本記事は、その「拡大表示」について説明します。
拡大表示とは
拡大表示で「文字を拡大」とありますが、実は拡大されているのは文字だけではありません。画面自体が拡大されています。画面サイズが異なっても、レスポンシブな画面設計をしていれば、問題はありません。しかし、アプリ特性によっては問題が起こります。
自明ですが物理的な画面サイズやピクセル座標系は変化しようがないので、画面拡大はアプリ画面をレンダリングするポイント座標系が変化します。ピクセル座標系とポイント座標系は、retina 倍率を利用して写像されます。つまり、この倍率が変更されます。
retina 倍率と実際の倍率は次のようの取得できます。ここで、UIScreen.main
はすでに非推奨ですが、説明を簡単にするため、利用しました。実際にアプリで利用する場合は、適切に置き換えてください。
let retinaScale = UIScreen.main.scale
let nativeScale = UIScreen.main.nativeScale
たとえば、iPhone XR で設定から拡大表示を有効にすると、次の値になります。
端末 | retinaScale | nativeScale |
---|---|---|
iPhone XR | 2.0 | 2.208 |
通常は retina 2 倍のポイント座標系ですが、拡大表示で「文字を拡大」を有効にすると、スケール 2.208 倍のポイント座標系に変化します。いつもの座標系と比較すると、小さくなくます。もしサイズ固定のコンポーネントなどを配置していると、表示が崩れるかもしれません。確認しましょう。
なお、この拡大表示の機能は、iPhone SE(第二世代)や iPhone XR 以降に販売された iPhone の各モデルが対応しています。つまり、現代の iPhone ユーザーのほとんどは、この機能を利用できます。
iPad の「拡大表示」について
iPhone の「拡大表示」について、取り上げました。iPad も同様な機能をサポートしていますが、iPhone と異なっています。
まず、iPad(いわゆる無印版)と iPad mini には「拡大表示」はありません。iPhone と比べて十分に画面が大きいので、文字を拡大する必要がないということでしょうか。
iPad にもないということは、同サイズのiPad Air 11インチにもないよね?と考えそうですが、Air には「拡大表示」があります。しかし、「文字を拡大」ではなく「スケールを拡大」という機能になっています。
スケールを拡大
iPhone の拡大表示は「文字を拡大」であり、nativeScale は拡大されます。一方で、iPad の拡大表示は「スケールを拡大」であり、nativeScale は縮小されます。「拡大表示」という同機能ですが、効果の方向が真反対になっています。
iPad には「文字を拡大」がないんだと思うかもしれませんが、13インチの iPad Air と iPad Pro には、あります。しかも、「スケールを拡大」もあります(ただし、公式ドキュメントは見つからなかった)。つまり、「拡大表示」というのは、画面表示の拡大(もしくは縮小)のトグル機能ではなく、複数の拡大率の選択機能でした。
端末 | 文字を拡大 | デフォルト | スケールを拡大 |
---|---|---|---|
iPhone | ✅ | ✅ | - |
iPad 無印 | - | - | - |
iPad mini | - | - | - |
iPad Air 11インチ | - | ✅ | ✅ |
iPad Air 13インチ | ✅ | ✅ | ✅ |
iPad Pro 11インチ | - | ✅ | ✅ |
iPad Pro 13インチ | ✅ | ✅ | ✅ |
拡大表示のまとめ
iPhone と iPad(Air、Pro)には、「拡大表示」という座標系を拡大もしくは縮小する設定があります。アクセシビリティの文字のサイズやスタイルの変更は一部のテキストを取り扱うコンポーネントに対して影響ありますが、この「拡大表示」はアプリすべての座標系に影響します。
「文字を拡大」を選択した場合
- iPhone と iPad(13インチの Air、Pro)が対象
- 画面スケールは拡大されて、アプリで利用できる座標系は狭くなる
- 固定サイズのコンポーネントを利用する場合、想定する位置を超える場合あり
「スペースを拡大」を選択した場合
- iPad(Air、Pro)が対象
- 画面スケールが縮小されて、アプリで利用できる座標系は広くなる
- 固定サイズのコンポーネントを利用する場合、余白が増える場合あり
この「拡大表示」によって、意図しない表示が起こる場合ことあるので、一度は確認するのがおすすめします。
参照