簡體   English   中英

如何使用xib文件中的任何Subview(在xib中創建)的多個副本

[英]how to use multiple copies of any Subview(created in xib) from xib file

我正在使用xib為我的項目創建視圖。 條件是:

我有多個UIView IBoutlet的對象。

IBOutlet UIView *viewOpenDoor;
IBOutlet UIView *viewOpenDoor_Second;

viewOpenDoor僅連接到viewOpenDoor中的一個視圖。 現在我使用此代碼在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對象,多次使用不同的實例?

您將xib加載到UINib並從該UINib實例化所需的所有副本。

然后訪問整個xib副本的出口。 您無法復制視圖,只能從同一個UINib實例化多個“副本”。

如果計划稍后創建更多,則可以將UINib存儲在實例變量中。

試試這個: - 將UIView所有實例(你要連接的)引用到XIB文件,如下圖所示。

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM