Ios 如何复制故事板中设计的UIView?

Ios 如何复制故事板中设计的UIView?,ios,storyboard,xcode5,Ios,Storyboard,Xcode5,所以我有一个在情节提要视图控制器中设计的视图,我想从代码中多次重用该设计。在XCode 5中可以这样做吗?如果是这样,你能告诉我正确的方向吗?便宜的方法,给视图一个标签 然后UIView*view=[UIView-viewWithTag:tag] 然后继续复制它,将其添加到视图中 或者试试这个: id copyOfView = [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObjec

所以我有一个在情节提要视图控制器中设计的视图,我想从代码中多次重用该设计。在XCode 5中可以这样做吗?如果是这样,你能告诉我正确的方向吗?

便宜的方法,给视图一个标签

然后
UIView*view=[UIView-viewWithTag:tag]

然后继续复制它,将其添加到视图中

或者试试这个:

id copyOfView = [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:originalView]];

请记住,并非所有内容都必须正确存档和未存档(自定义字体、层设置(如角半径)),而且iBouts不应该被控制,因为它们不会在克隆的对象上更新。

您实际要问的是如何实现视图控制器多态性

这是一种常见的面向对象编程设计模式/原则

如上所定义

你会发现这很有帮助


实际上,您希望通过在父视图控制器中实现
prepareforsgue
方法来设置某些目标视图控制器公共属性

据我所知,
UIView
没有实现
NSCopying
协议,因此类似于
[view copy]
的东西将不起作用。知道如何在不创建方法的情况下复制视图吗?@mihairatu尝试以下方法:
id copyOfView=[NSKeyedUnarchiver unarchiveObjectWithData:[nskeyedurchiver archivedatawithrootobject:originalView]]存档视图。。。那是。。。有趣!它起作用了。。可能性能不太差。。。似乎有一些错误,虽然我在视图中的一个按钮丢失了自定义字体和角半径。这看起来有点懒惰,实际上你应该做一些事情,比如将视图移动到nib中并多次实例化它,而不是克隆它。实际上这可能是一个非常糟糕的主意。。我在复制的视图上有一个IBOutlet,我花了很多时间试图弄清楚为什么我在IBOutlet对象上调用的函数没有效果。这是因为IBOutlet仍然指向原始视图的对象,而不是新创建的对象…@CMash-Yup,你必须重做一些选择器。嗯。。。我想你明白我的问题了。我只想复制一个使用InterfaceBuilder设计的视图,它是给定视图控制器的一部分。类似于表视图的单元格在表视图中重用。。。