【发布时间】:2013-10-30 06:46:18
【问题描述】:
有一个自定义视图,由类和 xib 文件组成。我用它作为
[[NSBundle mainBundle] loadNibNamed:@"myViewNib" owner:self options:nil];
问题是如何继承这个自定义视图。
我继承了myViewClass,但是我无法使用上面的代码创建实例。我认为我的方式错误。
【问题讨论】:
有一个自定义视图,由类和 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];
【讨论】: