iphone,ipad复制UIView - 克隆视图

时间:2011-01-25 05:14:51

标签: iphone objective-c ipad uiview duplicates

如何复制UIView。要求视图中应该有两个视图,以便考虑视图A和视图B.更改一个视图也应该更改另一个视图。

例如,考虑在视图中添加了一个mpmediaplayer A意味着视图B应该显示视图A中的相同视频,如果我在视图A中移动任何东西意味着转发视频,音量控制等。第二视图显示同样的事情。

3 个答案:

答案 0 :(得分:2)

没有简单的方法可以克隆视图,然后通过一行代码更新两个视图。因为他们的底层CALayers是不同的。但是对于复制UIView,这是一个可以使用的新方法: 使用UIView的方法:

- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates

这是绘制视图的最快方法。适用于iOS 7。

答案 1 :(得分:1)

UIViews除了手工之外不容易复制 - 即在loadView中手动创建视图并实例化两个副本。链接行为将取决于您。有些人可能会建议序列化UIView,然后反序列化副本,但子视图不太可能实现NSCoder(媒体播放器和UIImages肯定不会),这通常不会起作用。

答案 2 :(得分:-1)

这实际上很容易完成。每个视图应由一个控制器控制。然后,当在一个视图上执行操作时,控制器将简单地更新数据模型,而另一个视图将自动更新。这实际上是模型视图控件设计的强大功能。现在应该理解,这意味着两个视图实际上都将共享数据。它们的本地状态将是独立的,但这些状态将由控制器与数据模型保持同步。数据模型将统一,因此视图应保持同步。

有关MVC(模型视图控件)的更多信息,请参阅此文章 http://developer.apple.com/library/ios/#documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html