2010-12-03 28 views
2

Je crée la bibliothèque d'animation flip (voici l'exemple de démonstration: http://yfrog.com/7alhoz). En deux mots, je crée le CALayer et le tourne à l'aide de CATransform3DMakeRotation de CoreAnimation.CATransform3DMakeRotation et shadow

La question est - est-il possible d'ajouter une ombre à cette scène? Sans réécrire tout le code avec OpenGL :)

Merci.

Répondre

0

Jetez un oeil à CAGradientLayer. Je l'utilise actuellement pour ajouter des ombres dans une situation similaire. Peut être coûteux en termes de performances (encore à vérifier), mais semble assez convaincant.

Ajouter CAGradientLayer comme sous-couche (s) à vos couches et d'animer opacity. Vous devrez peut-être jouer un peu avec les dégradés et les couleurs pour les obtenir correctement.

0

Je ne suis pas sûr OpenGL mais avez-vous vérifié CATransform3D

Ajouter

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

dans le fichier .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; 

vous pouvez continuer à changer l'angle ici DEGREES_TO_RADIANS(90)

Ici vous pouvez ajouter l'ombre à myView.

Espérons que cela vous aidera.