1

xib ファイルからロードする UIView サブクラスがあります。CustomView.h ファイルでは、initWithFrame: メソッドの CGRect パラメータを単純に無視します。

- (id)initWithFrame:(CGRect)frame {
    self = [[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:nil options:nil] objectAtIndex:0];
    return self;
}

ここで私の質問は次のとおりです。カスタム ビューをインスタンス化するときはいつでも、渡す必要があるフレームは何ですか?

たとえば、私はこれを試しました:

CustomView *cv = [[CustomView alloc] initWithFrame:CGRectZero];

フレームは xib で設定されているため、ここで何が渡されても問題はないと思われます。ただし、これにより、カスタム ビューがユーザーの操作に応答しなくなります。

4

1 に答える 1

-1

おそらく代わりに initWithCoder を使用する必要があります

- (id)initWithCoder:(NSCoder*)coder {
    self = [super initWithCoder:coder];
    if (self){
        // Initialization code

    }
    return self;
}
于 2012-10-29T23:00:46.633 に答える