我正在尝试创建一个自定义的UIView,从nib文件导入它的视图.
在我的控制器中,我有一些像:
self.arcView=[[JtView alloc] initWithCoder:self]; self.arcView.backgroundColor=[UIColor redColor]; self.arcView.frame=CGRectMake(30.0f,200.0f,100.0f,100.0f); [self.view addSubview:self.arcView];
我的第一个问题是initWithCoder(NSCoder *)的参数应该如何?我尝试了自己,但有一个不兼容的指针类型,但这似乎工作.但问题#2:
其次,这个说法是在将自定义视图放入框架时,使用initWithCoder与nibs和initWithFrame.那么,我想在自定义视图中加载一个笔尖,然后将其放入一个框架中.我可以像上面那样添加一个框架,没关系(看起来好像有效)?
解决方法
你正在这样做:不是你应该调用initWithCoder :,它是执行loadNibNamed:owner:方法.
你在代码中需要做的是调用
UIView *view = [[[NSBundle mainBundle] loadNibNamed:@"theNIB" owner:self options:nil] objectAtIndex:0];
这将取消绑定NIB,并调用您的initWithCoder:初始化程序,并返回一个视图,所有的插座连接.