如何从iOS 4中的UIView加载nib?
我没有UIViewController,因为我将此自定义视图添加到父视图。
我想从nib文件初始化此自定义视图。我应该使用哪种初始化程序? initWithFrame还是initWithCoder?
到目前为止,我只在界面构建器中分配了自定义类。 (见图:http://cl.ly/7pmj)。这有必要吗?如果是这样,它仍然无法正常工作,为什么还不够?
NB 我在StackOverflow中找到了this related question。但是,它没有解释如何使用nib初始化视图本身。
我需要为此视图自定义 drawRect 方法,因此我不能只从nib文件添加子视图。我需要从nib文件初始化视图本身。
感谢
答案 0 :(得分:1)
是的,必须更改nib文件中的自定义视图类。 确保两件事: 1.转到yourCustomView.nib文件,选择对象中的视图,然后确保身份检查器下的自定义类正确。 2.在youCustomView.m文件中,确保您有此部分:
- (id)initWithCoder:(NSCoder*)coder
{
if ((self = [super initWithCoder:coder]))
{
//add custom change after init from nib.
}
return self;
}
答案 1 :(得分:0)
使用相关问题(NSBundle loadNibNamed)中的方法,并确保该调用中的所有者是具有相关视图的IBOutlet的对象。
将iboutlet挂钩到界面构建器中的视图(您需要将IB中所有者的类设置为加载笔尖调用中所有者的类)。
nib会将视图加载到该iboutlet变量中。
在.h文件中:
IBOutlet UIView *myView;
在.m文件中:
[[NSBundle mainBundle] loadNibNamed:@"viewToLoad" owner:self options:nil];
[someOtherView addSubView:myView];
其余的在IB。