any UIViewがリソースから読み込まれたときにコードを実行したい。UIViewがiOSに読み込まれるときに、どのようにコードを実行するのですか?
各UIViewサブクラスの実装を変更することなく、どうすればいいですか?
注:UIViewのサブクラス化はオプションではありません。
any UIViewがリソースから読み込まれたときにコードを実行したい。UIViewがiOSに読み込まれるときに、どのようにコードを実行するのですか?
各UIViewサブクラスの実装を変更することなく、どうすればいいですか?
注:UIViewのサブクラス化はオプションではありません。
あなたはUIViewのをサブクラス化して、あなたが@gsempeによって示唆されているように、すべてのUIView
にベース・ビュー・クラスでと実装しますUIView
を、作成を検討可能性があり、すべての他のUIviews
のためにあなたのサブクラスを使用する必要がありますwillMoveToSuperview:
方法。
そのスーパービューは、指定された スーパービューに変更すること 程度であるという見解を伝えます。
- (void)willMoveToSuperview:(UIView *)newSuperview;
- (void)willMoveToWindow:(UIWindow *)newWindow;
独自のカテゴリを宣言しようとすると、メソッドをオーバーライドしますが、私はそれは良い練習になるとは思わないことができます。他の方法は、UIViewサブクラスを拡張し、必要なメソッドをオーバーライドすることです。そして、そのクラスをUIViewではなくアプリケーションで使用します。
したがって、アプローチは実際にあなたのユースケースに依存します。私たちは、暗黙的なリソースとNIBを話しているので
、私はビューをロードしている唯一の2つのメソッドを思い出すことができます - UIViewController
のinitWithNibName:bundle
かloadNibNamed:owner:options:
我々はへのアクセスを提供されていないいくつかのプライベートメソッドがあるかもしれませんが。
あなたはそこで動作をオーバーライドすると考えることができます。 loadNibNamed:owner:options:
をオーバーライドするすべてのビューコントローラとサブクラスNSBundle
の親になるカスタムUIViewController
サブクラスを作成できます。しかし、これはあなたが達成したい仕事の種類に依存するかもしれません。
なぜそれをしたいですか? – Eiko