ベルマークのない自由帳

ベルマークのない自由帳

有益と無益の境界例

iOSアプリ開発メモ No.28 -サイズクラスについて-

Auto Layoutやアダプティブデザインについて調べているとよく目にする「サイズクラス」という言葉。 「クラス」という言葉があるからどこかに定義されているものかと思っていたけど、 そんな単純な話ではないらしい。 (実際に)

ざっくり

サイズクラス=画面の大きさを数値ではなく抽象的概念で表現するもの

iOS8から追加されたTrait Collectionという、「抽象的な画面情報を持つオブジェクト」が存在する。
その値の1つがサイズクラス。

画面の抽象的表現

「画面の大きさを抽象的に表現する」と言われても、その表現がもはや抽象的でわかりづらい。
実際はすごく簡単で、画面の大きさを「小さい」と「普通」の2つの概念にまとめたもの。
* 小さいサイズ:Compact * 大きいサイズ:Regular

たったこれだけ。
この2つの(抽象的な)値を「画面の縦幅」と「画面の横幅」に当てはめる。
UITraitCollectionのドキュメントに載っている図を見てみるとわかるように、iPadとiPhoneXのサイズ(具体的な値)は違くても同じRegularという値を用いている。

f:id:Mantra:20180307080056p:plain
https://developer.apple.com/documentation/uikit/uitraitcollectionより

今回参考にしたページ。
https://dev.classmethod.jp/references/ios8-trait-collection/

UITraitCollectionのドキュメント
https://developer.apple.com/documentation/uikit/uitraitcollection