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