Рисование с использованием базовой графики в CALayer

Я пытаюсь разобраться в Core Graphics и Core Animation. Я понимаю следующее:

  • Используя UIView, я могу рисовать с помощью Core Graphics, переопределив drawRect.
  • Я могу создать несколько CALayer, задать их свойства и добавить их

У меня следующие вопросы: - Если я создам CALayer с нуля (не используя что-то вроде CALayer *myLayer = myUIView.layer), каков подход к рисованию в этом CALayer? - Какой в ​​CALayer эквивалент drawRect для UIView?

Я надеюсь, что в этом есть смысл.


person shawnzizzo    schedule 12.06.2011    source источник


Ответы (1)


Чтобы создать собственный рисунок, у вас есть два варианта:

  1. Подкласс CALayer и реализация -drawInContext:.
  2. Создайте свой собственный класс, который будет служить делегатом вашего слоя для выполнения подпрограмм Quartz. Он должен реализовать -drawLayer:inContext:.

Вам следует добавить свой собственный слой в качестве подслоя к вашему слою UIView. Вам следует просмотреть страницы документации CALayer, чтобы узнать о некоторых правилах взаимодействия со слоем представления.

person pe8ter    schedule 13.06.2011
comment
Я только что прочитал, что вы можете сделать свой собственный слой слоем UIView, создав подкласс UIView и реализовав + layerClass, чтобы вернуть свой собственный класс слоя. Вы бы сделали это вместо того, чтобы добавлять свой собственный слой в качестве подслоя слоя представления (вот так). - person pe8ter; 25.06.2011