2013-02-12 75 views
-1

这可能是一个愚蠢的问题,但我什么都没发现...... 我偶然发现了一段我认为可以优化的代码。从NIB加载一个相同类型的UIView

我有一个viewcontroller由24个笔记/ postits组成。 以下时认为,做负载过程被调用:

for (int i = 1; i <= 24; i++) 
{ 
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"PostitView" owner:self options:nil]; 
    for (UIView *subview in nib) 
    { 
     if ([subview isKindOfClass:NSClassFromString(@"PostitView")]) 
     { 

它需要相当一段时间才能从笔尖连连加载postit。

我会说,我只是从子视图复制,但它不会工作。那么最新的方法是什么?

谢谢!!! Tom

+0

检查这个答案http://stackoverflow.com/questions/4036398/iphone-create-a-reusable-component-control-that-has-some-interface-builder-pi/4037281#4037281 – Aziz 2013-02-12 17:23:20

+0

有与我所做的没有什么不同。显然这在使用NIB时是不可能的。 – Tom 2013-02-12 17:33:29

+0

加载视图需要多长时间? – Aziz 2013-02-12 17:37:34

回答

2

在循环之前,创建一个代表您的笔尖的对象UINib。在循环内部,请UINib实例化自己。

UINib *nib = [UINib nibWithNibName:@"PostitView" bundle:nil]; 
Class viewClass = [PostitView class]; 
for (int i = 0; i < 24; i++) { 
    NSArray *topLevelObjects = [nib instantiateWithOwner:self options:nil]; 
    for (UIView *subview in topLevelObjects) { 
     if ([subview isKindOfClass:viewClass) { 
      ... 
+0

instantiateWithOwner ...以及是我一直在寻找的。谢了哥们! – Tom 2013-02-13 08:08:44