ビューが手動でロードされると、開発者は初期化に関してコントロールを維持し、呼び出す初期化子、設定する変数などを選択します。
ビューがストーリーボードセグエから読み込まれると...その初期化子はどうなりますか?ビューがロードされたら、どこで変数を設定する必要がありますか?
ここでシーケンスを理解するのを手伝ってください。ここでクラスのインスタンスはどのように作成され、誰がそれを作成し、どのように介入し、好みに合わせて設定するのを助けることができますか?
ビューがペン先またはストーリーボードから読み込まれると、-initWithCoder:
メソッドが呼び出されます。 -initWithFrame:
と同様に、-initWithCoder:
はUIViewの指定された初期化子です。 UIViewサブクラスのカスタム初期化を行う場合は、これらの両方のメソッドで確実に初期化する必要があります。一般的な手法の1つは、-initWithFrame:
と-initWithCoder:
の両方から呼び出す共通の初期化メソッドを追加することです。 my answer to カスタムビューとinitメソッドの実装? を参照してください。
-initWithFrame:
のドキュメントで説明していることに注意してください:
Interface Builderを使用してインターフェイスを設計する場合、このメソッドはビューオブジェクトがnibファイルからその後ロードされるときに呼び出されません。 nibファイル内のオブジェクトは再構成され、initWithCoder:メソッドを使用して初期化されます。このメソッドは、nibファイルに格納されている属性と一致するようにビューの属性を変更します。