5

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

4

2 に答える 2

11

initWithCode:ビューを使用中に処理するのではなく、ビューを設定するときに値にアクセスする必要がある場合awakeFromNib

于 2012-11-01T01:45:55.070 に答える
5

これは、IBからのビューが。の後にロードを終了したためinitWithCoderです。以下は、プロセスを理解するのに役立ちます。について説明されてUIViewControllersいますが、概念は同じです(ViewControllerプログラミングガイドから):

ストーリーボードでViewControllerを作成すると、InterfaceBuilderで構成した属性がアーカイブにシリアル化されます。後で、View Controllerがインスタンス化されると、このアーカイブがメモリにロードされて処理されます。結果は、属性がInterfaceBuilderで設定したものと一致するオブジェクトのセットです。アーカイブは、View ControllerのinitWithCoder:メソッドを呼び出すことによってロードされます。

于 2012-10-31T08:32:24.313 に答える