4

我正在使用 xib 为我的项目创建视图。条件是:

我有多个UIViewIBoutlet 的对象。

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'

所以,我的问题是如何重复使用IBOutlet在 xib 中创建的这个对象,多次使用不同的实例?

4

2 回答 2

4

您将 加载xib到 a中UINib并实例化您想要的所有副本UINib

然后接全副本的出线口xib。你不能复制一个视图,你只能从同一个中实例化多个“副本” UINib

UINib如果您打算稍后创建更多,您可以将其存储在实例变量中。

于 2013-08-27T12:46:04.663 回答
3

试试这个:- 将所有实例(您要连接的)引用UIView到 XIB 文件,如下图所示。

在此处输入图像描述

于 2013-08-27T12:57:04.793 回答