2011-07-31 16 views
6

estoy jugando con CATransform3DMakeRotation en un UIView, y yo estoy tratando de hacer un 45º, transformada como si estuviera poniendo al revés:entendimiento CATransform3D

http://cl.ly/2A2p1W1e2N3a1W181r35

Este es el "código" que tengo, pero claramente no lo hace.

CATransform3D _tr = CATransform3DMakeRotation(3.14/4, 1, 0, 0); 
view.layer.transform = _tr; 

por favor ayúdenme a entender los params. Gracias.

+3

Solo un FYI, pero se puede usar 'M_PI' en lugar de la constante 3.14. Y 'M_PI_4' en lugar de 3.14/4 –

Respuesta

4

Básicamente, su código es correcto, pero para obtener el efecto de perspectiva, es necesario configurar el sublayerTransform de la capa de la supervista a algo como esto:

CATransform3D perspectiveTransform = CATransform3DIdentity; 
perspectiveTransform.m34 = 1.0/-850; 
myView.layer.sublayerTransform = perspectiveTransform; 

Usted puede experimentar con diferentes valores para diferentes cantidades de distorsión.

+7

¿puede explicarme qué está haciendo allí? Quiero aprender, no solo copiar y pegar y ajustar valores. –

+3

Para la posteridad, Apple explica qué significan .m34 y 850 aquí: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreAnimation_guide/AdvancedAnimationTricks/AdvancedAnimationTricks.html#//apple_ref/doc/uid/TP40004514-CH8-SW13 – AlleyGator