IBのカスタムUIViewにユーザー定義のランタイム属性を作成しました。興味深いのは、touchesBegan:withEvent:メソッドではアクセスできますが、initWithCoderではアクセスできないことです。理由を知っていますか?

IBのカスタムUIViewにユーザー定義のランタイム属性を作成しました。興味深いのは、touchesBegan:withEvent:メソッドではアクセスできますが、initWithCoderではアクセスできないことです。理由を知っていますか?

initWithCode:ビューを使用中に処理するのではなく、ビューを設定するときに値にアクセスする必要がある場合awakeFromNib
これは、IBからのビューが。の後にロードを終了したためinitWithCoderです。以下は、プロセスを理解するのに役立ちます。について説明されてUIViewControllersいますが、概念は同じです(ViewControllerプログラミングガイドから):
ストーリーボードでViewControllerを作成すると、InterfaceBuilderで構成した属性がアーカイブにシリアル化されます。後で、View Controllerがインスタンス化されると、このアーカイブがメモリにロードされて処理されます。結果は、属性がInterfaceBuilderで設定したものと一致するオブジェクトのセットです。アーカイブは、View ControllerのinitWithCoder:メソッドを呼び出すことによってロードされます。