1

クラスと xib ファイルで構成されるカスタム ビューがあります。私はそれを

[[NSBundle mainBundle] loadNibNamed:@"myViewNib" owner:self options:nil];

問題は、このカスタム ビューを継承する方法です。

myViewClass を継承していますが、上記のコードを使用してインスタンスを作成することはできません。方法が間違っていると思います。

4

2 に答える 2

2

1 つのオプションはMYBaseView、.xib ファイルでそれ自体を作成しないことですが、それはサブビューです。これで簡単に継承MYBaseViewできます。

プログラムまたは Interface Builder でビュー オブジェクトを作成する場合、次のコードは正しく動作するはずです。

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        [self setUp];
    }
    return self;
}

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self setUp];
    }
    return self;
}

- (void)setUp
{
    UIView *view = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil] lastObject];
    [self addSubview:view];
}
于 2013-10-30T07:05:16.070 に答える
0

It should be:

myViewClass *newView = [[NSBundle mainBundle] loadNibNamed:@"myViewNib" owner:self options:nil];
于 2013-10-30T06:56:07.157 に答える