Я всегда использовал CoreGraphics и CoreAnimation, я понимаю, как каждый из них работает сам по себе, но не те крайние случаи, когда приходится разговаривать с другим. Я также понимаю, что UIView
- хорошая оболочка для CALayer
, где CALayer
выполняет весь тяжелый подъем рендеринга, а UIView
добавляет отзывчивость.
Но все вопросы, которые я видел до сих пор, атакуют проблему с одной или другой стороны, а не взаимодействие между ними, особенно между CoreGraphics и CALayer
.
В любом случае, мой вопрос...
Как CoreGraphics относится к CALayer?
Я понимаю, что CALayer
обертывает методы CoreGraphics, чтобы рисовать сам, но делает это один раз и может жить с моментальным снимком самого себя до тех пор, пока не будет отменен. Но как эти методы рисования взаимодействуют с подслоями этого слоя? Являются ли они эксклюзивными?
Например, что происходит, когда у меня есть UIView
, который имеет под-представления, и я перегружаю метод drawRect
? Как это влияет на рисование его подслоев?
Можно ли даже смешать две функции внутри одной и той же функции?
Кроме того, я спрашиваю только об iOS, я понимаю, что Mac - это другой зверь (а также эти фантазии CIFilters
, ублюдки!).
Предварительные исследования
Вот некоторые связанные вопросы, которые я изучил заранее:
- путаница относительно quartz2d, основной графики, основной анимации, основных изображений. Этот вопрос задает различия между собой, и выбранный ответ действительно поставляет, но он отвечает за каждую отдельную библиотеку, как если бы другой не существовал.
- Извлечь или не начертить. Еще один большой вопрос, но он касается только темы рисования CoreGraphics и передачи проблемы UIKit, но в любом случае выбранный ответ предоставляет части головоломки.
- Анимация кусочков пирога с пользовательским CALayer. Должен быть одним из самых ценных уроков, которые я видел в этой теме, это единственная, которая провела меня до рисования CALayer
- Что отличает CoreGraphics от CoreAnimation Абсолютно разочарованный тем, насколько быстро ответчик ответил на этот вопрос, я чувствую, что здесь намного больше.
- Различные видеоролики WWDC, но я не видел того, что подробно объясняет общую область. Если кто-то отвечает с видео WWDC, которое делает, я буду считать, что правильный ответ.