Могу ли я анимировать NSBezierPath в CALayer? - PullRequest
0 голосов
/ 17 февраля 2011

Я прочитал «Apple Cook Cookbook» и «Руководство по программированию Core Animation» от Apple, но я не совсем уверен в некоторых деталях.

Всегда ли мне нужно анимировать полный CALayer или я могу анимировать материал внутри CALayer?

Если я нарисовал NSBezierPath внутри слоя, и я хочу анимировать / переместить это в другую позицию, как мне это сделать? Есть ли пример этого, на который вы могли бы указать мне?

1 Ответ

5 голосов
/ 17 февраля 2011

Обычно вы делаете анимацию CALayer в целом для лучшей производительности. Если все, что вам нужно - это изменить положение пути Безье, вы можете просто анимировать свойства position или frame вашего CALayer.

Если вы хотите изменить форму векторного пути, я бы порекомендовал взглянуть на новый CAShapeLayer, где вы можете анимировать между одним CGPath и другим, используя свойство path на слое. У Джо Ричиоппо есть пример кода, который вы можете посмотреть здесь .

Кроме того, вам нужно перерисовать слой, если вы хотите обновить его содержимое, а не его базовые свойства, такие как положение, масштаб, вращение и т. Д.

...