1

有一个自定义视图,由类和 xib 文件组成。我用它作为

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

问题是如何继承这个自定义视图。

我继承了myViewClass,但是我不能使用上面的代码来创建一个实例。我认为我走错了路。

4

2 回答 2

2

一种选择是不在 .xib 文件中创建MYBaseView自身,而是在子视图中创建。这样,您将能够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

它应该是:

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