有一个自定义视图,由类和 xib 文件组成。我用它作为
[[NSBundle mainBundle] loadNibNamed:@"myViewNib" owner:self options:nil];
问题是如何继承这个自定义视图。
我继承了myViewClass,但是我不能使用上面的代码来创建一个实例。我认为我走错了路。
一种选择是不在 .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];
}
它应该是:
myViewClass *newView = [[NSBundle mainBundle] loadNibNamed:@"myViewNib" owner:self options:nil];