2012-06-27 3 views
0

Я пытаюсь скопировать UIView с некоторыми свойствами. UIView переопределяет метод drawLayer: для рисования пользовательских фигур.drawLayer не вызван в initWithCoder?

Я использую NSKeyedArchiver, картон и NSKeyedUnarchiver, чтобы вернуть свойства. Создается экземпляр UIView и свойства задаются - все хорошо до сих пор.

Некоторые свойства создаются в методе drawlayer, которые имеют значения по умолчанию, а не скопированные. Мой вопрос в том, когда вызывается initWithCoder и создается экземпляр, не называется drawRect или drawLayer? Зачем?

ответ

1

drawLayer/drawRect вызывается по требованию (экономно), когда контент необходимо визуализировать или повторно отображать. Вероятно, это не вызвано во время инициализации, потому что нет необходимости. Его следует называть позже, когда представление отображается на экране и должно быть отображено.

Кроме того, вы говорите, что вы создаете некоторые свойства в drawLayer? Подумайте о переходе их к некоторому методу инициализации и сохраните методы рисования, ориентированные только на рисование.

+0

Hmm ... ok .. то, что я делаю, это рисование фигуры и добавление текстовых изображений в форму после рисования ... свойства textview - это свойства, о которых я говорил ... как вы предлагаете мне переместить это ? Потому что я не могу добавить текстовые просмотры сначала (во время инициализации), а затем рисовать ... – Prathiba

+0

Почему вы не можете добавить текстовые изображения в первую очередь (во время инициализации)? Если вы знаете, как рисовать фигуры в drawRect, вы можете сделать то же вычисление при инициализации (если вы знаете границы представления), чтобы выяснить, куда помещать текстовое изображение. Поэтому просто добавьте текстовое представление в инициализацию и сделайте рисунок позже. Поскольку textview является подзором вашего представления, он должен отображаться над любым рисунком, который вы делаете в своем представлении. – Nik

+0

Работал! Может быть, мне нужен перерыв, потому что мой здравый смысл пошел на собак! Спасибо хоть... – Prathiba

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