取り上げるのは
・viewWillTransition(to newSize)
・viewWillTransition(to size, with coordinator)
・willTransition(to newCollection, with coordinator)
※一旦和訳しただけ あとでまとめます
viewWillTransition(to newSize)
アプリケーション拡張機能の一部であるView Controllerの場合、そのビューのサイズが変更されようとしているときに呼び出されます。
newSize
View Controllerのビューの新しいサイズ。
使い方
サイズの変更に応じてレイアウトを変更したい場合、この方法をオーバーライドしてください(アニメーション化されている可能性があります)。
viewWillAppearみたいに考えればいいのかな
viewWillTransition(to size, with coordinator)
ビューのサイズが変更されようとしていることをコンテナに通知します。
size
コンテナのビューの新しいサイズ
coordinator
サイズ変更を管理する遷移コーディネータオブジェクト。
このオブジェクトを使用して、変更をアニメートしたり、進行中の移行に関する情報を取得したりできます。
使い方
表示されているView Controller
のビューのサイズを変更する前に、UIKit
はこのメソッドを呼び出します。 このメソッドを自分のオブジェクトでオーバーライドして、サイズ変更に関連する追加のタスクを実行するために使用することができます。 たとえば、コンテナView Controller
はこのメソッドを使用して、埋め込まれた子View Controllerの特性をオーバーライドすることがあります。 行った変更をアニメートするには、提供されているコーディネータオブジェクトを使用します。
カスタムView Controller
でこのメソッドをオーバーライドする場合は、UIKit
がサイズ変更メッセージを適切に転送できるように、実装のある時点で常にsuper
を呼び出してください。 View Controller
は、サイズ変更メッセージを自分のビューと子View Controller
に転送します。 プレゼンテーションコントローラは、サイズの変更を表示されているView Controller
に転送します。
willTransition(to newCollection, with coordinator)
traitCollectionが変更されたことをコンテナに通知します。
newCollection
コンテナに適用される特性。
coordinator
特性変更を管理する遷移コーディネータオブジェクト。
このオブジェクトを使用して、変更をアニメートしたり、進行中の移行に関する情報を取得したりできます。
使い方
UIKit
は、現在のオブジェクトの特性を変更する前、および影響を受けるView
やView Controller
のtraitCollectionDidChange(_ :)
メソッドを呼び出す前に、このメソッドを呼び出します。このメソッドの実装者は、newCollection
の値に基づいてインターフェイスを適応させるためにこのメソッドを使用できます。このメソッドの一般的な使用方法は、現在のサイズクラスが変更されたときに高レベルの表示スタイルを変更することです。
たとえば、複数の子View Controller
を管理するコンテナView Controller
は、サイズクラスが変更されたときに画面に表示される子View Controller
の数を変更することがあります。標準のView Controller
は、このメソッドを使用して、管理するビューに対する制約を変更します。行った変更をアニメートするには、提供されているコーディネータオブジェクトを使用します。
独自のオブジェクトでこのメソッドをオーバーライドする場合は、UIKit
が特性の変更を関連するプレゼンテーションコントローラおよび任意の子View Controller
に転送できるように、実装のある時点で常にsuperを呼び出します。 View Controller
は、特性変更メッセージを子View Controllerに転送します。プレゼンテーションコントローラは、特性の変更を表示されているビューコントローラに転送します。
参考記事
・viewWillTransition(to:) - NSViewController | Apple Developer Documentation
・viewWillTransition(to:with:) - UIContentContainer | Apple Developer Documentation
・willTransition(to:with:) - UIContentContainer | Apple Developer Documentation
・iOSTraining/1-3_Supporting-Multiple-Interface-Orientations.md at master · mixi-inc/iOSTraining