开发者社区> 问答> 正文

从xib文件中使用批量复制

使用xib创建视图,条件是:

有批量UIView IBoutlet的对象
IBOutlet UIView *viewOpenDoor;
IBOutlet UIView *viewOpenDoor_Second;

viewOpenDoor 是唯一连接到xib中一个视图。现在我使用下面的代码在Viewdidload方法中重新用同样的视图:

[viewOpenDoor setFrame:CGRectMake(30, 80, viewOpenDoor.frame.size.width, viewOpenDoor.frame.size.height)];
[self.view addSubview:viewOpenDoor];
viewOpenDoor.layer.borderColor = [UIColor blackColor].CGColor;
viewOpenDoor.layer.borderWidth = 0.9f;
viewOpenDoor.layer.cornerRadius = 6.0f;

 [viewOpenDoor setHidden:YES];

viewOpenDoor_Second = [[UIView alloc] init];
viewOpenDoor_Second = [viewOpenDoor copy];

[viewOpenDoor_Second setFrame:CGRectMake(184, 80, viewOpenDoor.frame.size.width, viewOpenDoor.frame.size.height)];

[self.view addSubview:viewOpenDoor_Second];

然后报出异常:

-[UIView copyWithZone:]: unrecognized selector sent to instance 0x95ba140
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView copyWithZone:]: unrecognized selector sent to instance 0x95ba140'

应该怎么重新使用这个在xib中创建的IBOutlet 对象,带有多个不同实例化呢?

展开
收起
爵霸 2016-03-17 10:44:55 1981 0
1 条回答
写回答
取消 提交回答
  • 用copy方法的话 你需要重新实现一下 copyWithZone 这个方法。

    2019-07-17 19:04:45
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
移动与复制 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载