我有一个UIView的子类“s”。我想在s上放一些按钮和标签。如何将我的UIView子类与nib文件相关联?
答案 0 :(得分:28)
您应该可以使用拖动按钮。要从代码获取nib,请使用-[NSBundle loadNibNamed:owner:options:]
。您的视图应该是返回数组中的第一个对象。
答案 1 :(得分:3)
在我的情况下,我不希望我的视图控制器从我的视图的.xib中了解IBOutlets。我希望我的视图子类拥有IBOutlets。不幸的是,UIView没有initWithNibName:
方法,因此我只创建了自己的类别。
这就是我的所作所为:
initWithNibName:
来实例化您的视图。这是我创建的类别:
- (instancetype)initWithNibName:(NSString *)nibName
{
NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil];
if (arrayOfViews.count < 1) {
return nil;
}
self = arrayOfViews[0];
return self;
}
受this post的启发。
请注意,到目前为止,帧会自动调整,因此与帖子中的代码不同,我还没有明确设置帧。
此外,与帖子的代码不同,我需要设置owner:self
,以便IBOutlets正确连接。