Comme dit Ben, vous aurez besoin de travailler avec le UIView de la couche, à l'aide d'un CATransform3D pour effectuer la couche de rotation. L'astuce pour obtenir la perspective de travail, comme décrit ici, est, d'accéder directement à l'une des cellules de la matrice de la CATransform3D (m34). Matrice de mathématiques n'a jamais été mon truc, donc je ne peux pas expliquer exactement pourquoi cela fonctionne, mais il le fait. Vous aurez besoin de mettre cette valeur à une valeur négative de la fraction pour votre initiale transformer, puis appliquez votre couche de rotation transforme. Vous devez également être en mesure d'effectuer les opérations suivantes:
UIView *myView = [[self subviews] objectAtIndex:0];
CALayer *layer = myView.layer;
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / -500;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 45.0f * M_PI / 180.0f, 0.0f, 1.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;
qui reconstruit la couche de transformer à partir de zéro pour chaque rotation.
Un exemple complet de ce (avec code) peut être trouvé ici, où j'ai mis en place tactile, rotation et mise à l'échelle sur un couple de CALayers, basée sur un exemple par le projet de Loi Dudney. La plus récente version du programme, tout en bas de la page, met en œuvre ce genre de point de vue fonctionnement. Le code devrait être assez simple à lire.
Le sublayerTransform vous vous référez dans votre réponse est une transformation qui est appliqué à la sous-couches de votre UIView de l' CALayer
. Si vous n'avez pas de sous-couches, ne vous inquiétez pas à ce sujet. J'utilise le sublayerTransform dans mon exemple, tout simplement parce qu'il y a deux CALayers contenues à l'intérieur de la première couche qui je suis en rotation.