2011-01-25 2 views
3

Как дублировать UIView. Требование состоит в том, что в представлении для представления должно быть два вида: View A и View B. Изменение одного вида также должно изменить другое представление.iphone, ipad Duplicate UIView - Cloned View

например, рассмотрим, что добавлен mpmediaplayer в виду. Средство просмотра B должно показывать одно и то же видео, которое есть в поле зрения A, и если я перемещаю что-либо в виду. A означает, например, пересылку видео, управление громкостью и т. Д. тоже самое.

ответ

1

UIViews нелегко дублировать, кроме как вручную, т. Е. Создавать представление вручную в loadView и создавать экземпляры двух копий. Связывание поведения будет зависеть от вас. Некоторые могут предлагать сериализацию UIView, а затем десериализацию копии, но маловероятно, что в subviews будет реализован NSCoder (медиа-плеер и UIImages, конечно же, нет), что делает его обычно не стартером.

-1

На самом деле это очень легко сделать. Каждый вид должен контролироваться одним контроллером. Затем, когда действия выполняются на одном представлении, контроллер просто обновляет модель данных, а другое представление автоматически обновляется. На самом деле это сила дизайна управления представлением модели. Теперь следует понимать, что это означает, что обе точки зрения будут делить данные. Их локальные состояния будут раздельными, но эти состояния будут синхронизироваться с моделью данных контроллером. Модель данных будет унифицирована, и поэтому представления должны оставаться синхронизированными.

больше на (контроль зрения модели) MVC эту статью http://developer.apple.com/library/ios/#documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html

+2

Я не понимаю, почему этот ответ так сильно опущен. Это кажется вполне допустимым и выполнимым. –

2

Там нет простой способ клонировать вид, а затем обновить две точки зрения на одну строку кода. Потому что их базовые CALayers разные. Но для дублирования UIView, вот новый метод, который вы можете использовать: метод Используйте UIView в:

- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates 

Это самый быстрый способ сделать вид. Доступно в iOS 7.