2011-06-20 8 views

答えて

1

あなたはUIViewのをサブクラス化して、あなたが@gsempeによって示唆されているように、すべてのUIViewにベース・ビュー・クラスでと実装しますUIViewを、作成を検討可能性があり、すべての他のUIviews

1

のためにあなたのサブクラスを使用する必要がありますwillMoveToSuperview:方法。

そのスーパービューは、指定された スーパービューに変更すること 程度であるという見解を伝えます。

- (void)willMoveToSuperview:(UIView *)newSuperview; 
- (void)willMoveToWindow:(UIWindow *)newWindow; 
0

独自のカテゴリを宣言しようとすると、メソッドをオーバーライドしますが、私はそれは良い練習になるとは思わないことができます。他の方法は、UIViewサブクラスを拡張し、必要なメソッドをオーバーライドすることです。そして、そのクラスをUIViewではなくアプリケーションで使用します。

したがって、アプローチは実際にあなたのユースケースに依存します。私たちは、暗黙的なリソースとNIBを話しているので

1

、私はビューをロードしている唯一の2つのメソッドを思い出すことができます - UIViewControllerinitWithNibName:bundleloadNibNamed:owner:options:我々はへのアクセスを提供されていないいくつかのプライベートメソッドがあるかもしれませんが。

あなたはそこで動作をオーバーライドすると考えることができます。 loadNibNamed:owner:options:をオーバーライドするすべてのビューコントローラとサブクラスNSBundleの親になるカスタムUIViewControllerサブクラスを作成できます。しかし、これはあなたが達成したい仕事の種類に依存するかもしれません。

関連する問題