2012-05-08 3 views
3

Мне нужно сделать глубокую копию UIView, содержащую несколько подзонов. Пожалуйста, помогите мне выяснить, как это сделать? Я сделал некоторые поиски в google и SO и не нашел ничего, что делает то, что я хочу.Сделайте глубокую копию UIView и всех его подзонов

Объяснение для тех, кто хотел бы знать, почему: У меня бесконечно прокручивается UIScrollView, где, конечно, содержимое повторяется. Каждый «набор» содержимого (например, 26 UIButtons с надписью A-Z) содержится внутри одного представления. Это представление, которое мне нужно сделать глубокой копией, так что я могу отображать несколько экземпляров на экране в прокрутке.

Я не могу просто воссоздать структуру представления, содержащую кнопки, потому что нажатие кнопок вызывает функцию класса, к которому у моего подкласса UIScrollView нет доступа. Я также не хотел бы воссоздавать их, потому что кажется, что тратить время на логику, чтобы воссоздать и разместить все подпункты в представлении контейнера, когда я мог бы просто сделать глубокую копию вместо этого.

Может ли кто-нибудь мне помочь?

+0

Таким образом, каждый раз, когда вы прокрутки, вы выделения новых UIViews, даже если они точные копии тех, у вас уже есть в памяти? –

+0

Помимо превосходного пункта Эвана выше, вы изучили делегатов? – Luke

+0

@ Эйван Корделл Да ... Я основывал его на примере кода Apple, который я нашел здесь: http://developer.apple.com/library/ios/#samplecode/StreetScroller/Introduction/Intro.html Он даже не работает потому что subviews не являются глубокими копиями, и поэтому они появляются только на экране один раз (т. е. приложение запускается, UIView на экране. Я прокручиваю, а когда приходит время добавить другой (идентичный) UIView, появляется, но исходный UIView кажется * исчезающим *, потому что subviews являются указателями на отдельные объекты). Все это беспорядок, и я хотел бы иметь возможность глубоко скопировать и исправить это! – WendiKidd

ответ

3

(Сообщение от моего комментария по запросу)

Aha справа теперь я вижу. Я думаю, что единственный способ - создать больше копий во время выполнения и скрыть их; иначе вам придется перебирать все подзаголовки, воссоздавать все кадры, цвета и т. д., но, как вы говорите, тогда вы, вероятно, столкнетесь с проблемами копирования целей и т. д. - но может быть что-то полезное, чтобы помочь сделать это здесь :

How to get UIButton Target, Action and Control events?

+1

Это было именно то, что мне было нужно - с возможностью копировать все из UIButton, я смог точно воссоздать свой взгляд. Я бы хотел, чтобы Apple выпустила возможность глубоко копировать элементы пользовательского интерфейса, но это работает в отсутствие этого. Благодаря! :) – WendiKidd

Смежные вопросы