以编程方式在ScrollView中复制现有的UIView? (故事板)

时间:2013-03-12 00:35:23

标签: objective-c xcode uiview uiscrollview storyboard

我使用Storyboard,我想复制并添加一个现有的UIView(所有“孩子”,如UILabels)以编程方式添加到ScrollView。所以首先我为View (EventView)创建了一个自定义的UIView-Class,其中我通过标识它们来初始化UILabels的新文本。 现在我想将这些EventView添加到Scrollview中,如下所示:

CGRect rect = CGRectMake(0.0, 0.0, 320, 320*10);
UIView *theView = [[UIView alloc] initWithFrame:rect];

for (int i = 0; i<10; i++)
{
     CGRect rC = CGRectMake(0.0, 320*i, 320, 320);

    EventView *dV = [[EventView alloc] initWithFrame:rC];
   [dV inWithEvent:allEvents[i]];//Strings for the UILabels
    [theView addSubview:dV];

}

theScrollView.contentSize = rect.size;
[theScrollView addSubview:theView];
}

有更好的(和工作)解决方案吗? 谢谢!

1 个答案:

答案 0 :(得分:11)

复制视图或ui对象有一种我在这里学到的方法

 NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject: viewToBeDuplicated];

 UIView * newView = [NSKeyedUnarchiver unarchiveObjectWithData: archivedData];

现在,您可以使用新视图执行任何操作。