CATransform3DMakeRotation и тень - PullRequest
       15

CATransform3DMakeRotation и тень

2 голосов
/ 03 декабря 2010

Я создаю библиотеку флип-анимации.

В двух словах я создаю CALayer и вращаю его, используя CATransform3DMakeRotation CoreAnimation.

Вопрос в том, есть ли способ добавитьтень на эту сцену?Без переписывания всего кода с OpenGL:)

Ответы [ 2 ]

0 голосов
/ 06 сентября 2013

Я не уверен насчет OpenGL, но вы проверили CATransform3D

Добавить

#define DEGREES_TO_RADIANS(d) (d * M_PI / 180)

в .pch файл

CATransform3D myTransform = CATransform3DIdentity;
myTransform.m34 = 1.0 / -500;
myTransform = CATransform3DRotate(myTransform, DEGREES_TO_RADIANS(90), 0.0f, 0.0f, 1.0f);
myView.layer.transform = myTransform;

Вы можете перейтипри изменении угла здесь DEGREES_TO_RADIANS(90)

Здесь вы можете добавить тень к myView.

0 голосов
/ 30 июля 2012

Посмотрите на CAGradientLayer. Я в настоящее время использую это, чтобы добавить тени в подобной ситуации. Может быть дорогостоящим с точки зрения производительности (все же придется проверить это), но выглядит довольно убедительно.

Добавьте CAGradientLayer в качестве подслоя (ов) к своим слоям и анимируйте его opacity. Возможно, вам придется немного поиграть с градиентными ограничителями и цветами, чтобы получить их правильно.

...