加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 如何使用来自xib文件的任何Subview(在xib中创建)的多

发布时间:2020-12-14 17:42:20 所属栏目:百科 来源:网络整理
导读:我正在使用xib为我的项目创建视图.条件是: 我有多个UIView IBoutlet的对象. IBOutlet UIView *viewOpenDoor;IBOutlet UIView *viewOpenDoor_Second; viewOpenDoor仅连接到xib中的一个视图. 现在我使用此代码在viewdidload方法中多次重用相同的视图 – [view
我正在使用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,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对象,多次使用不同的实例?

解决方法

您将xib加载到UINib并从该UINib实例化所需的所有副本.

然后访问整个xib副本的出口.您无法复制视图,只能从同一个UINib中实例化多个“副本”.

如果计划稍后创建更多,则可以将UINib存储在实例变量中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读