0

私はこれまでオーバーライドしないように言われています-(UIView *)view。なぜだめですか?カスタムにカスタムUIViewサブクラスを使用したいUIViewController。そうするためのより良い方法は何ですか?

4

2 に答える 2

3

をオーバーライドすることはできません-view。必要な動作を実現するために、ペン先からロードするようにView Controllerを設定するか、メソッドをオーバーライドすることができます-loadView。後者の方法では、必要なビューを作成して、に割り当てますself.view

于 2012-08-20T21:06:12.780 に答える
1

ペン先またはストーリーボードを使用している場合は、ルートビューのクラスを新しいカスタムUIViewサブクラスに設定するだけです。ペン先やストーリーボードを使用していない場合は、-loadViewメソッドでカスタムサブクラスを作成し、ViewControllerのviewプロパティをそれに設定します。したがって、たとえば、UIViewという名前のカスタムサブクラスがMyViewあり、それをコード(ペン先やストーリーボードではなく)で作成している場合は、次のようにします。

// This code sample assumes compiling with ARC
- (void)loadView
{
  // You should adjust the initial frame to be whatever's appropriate for this
  // view controller
  MyView* view = [[MyView alloc] initWithFrame:CGRectMake(0, 0, 360, 480)];
  [self setView:view];
}
于 2012-08-20T21:05:45.373 に答える