制作UIView及其所有子视图的深层副本

时间:2012-05-08 19:28:58

标签: objective-c ios uiscrollview uikit deep-copy

我需要制作一个包含多个子视图的UIView的深层副本。请帮我弄明白怎么做?我已经在google和SO上做了一些搜索,没有找到任何符合我想要的东西。

对于那些想知道原因的人的解释:我有一个无限滚动的UIScrollView,当然,内容重复。每个“集合”的内容(例如,标记为A-Z的26个UIButtons)包含在一个视图中。这是我需要制作深层副本的视图,以便我可以在scrollview中在屏幕上显示它的多个实例。

我不能简单地重新创建包含按钮的视图的结构,因为按下按钮会调用我的UIScrollView子类无法访问的类的函数。我也不希望重新创建它们,因为当我可以简单地进行深度复制时,通过逻辑重新创建并将所有子视图放在容器视图中似乎是浪费。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

(根据我的要求发表评论)

啊哈,我现在看到了。我认为唯一的方法是在运行时创建更多副本并隐藏它们;否则你必须遍历所有的子视图,重新创建所有的框架,颜色等...但正如你所说,你可能会遇到复制按钮目标等问题 - 但可能有一些有用的东西来帮助实现这一点:

How to get UIButton Target, Action and Control events?