J'utilise CALayer pour un moteur de livre interactif et je veux faire pivoter CALayer autour de son centre mais quand j'applique une transformation de rotation (en utilisant un angle basé sur l'entrée utilisateur) à CALayer, ça devient fou s'étire et se déplace de manière très étrange et disparaît. Ce que je fais estComportement étrange de la rotation de rotation pour CALayer
[CATransaction begin];
[CATransaction setValue: (id) kCFBooleanTrue forKey: kCATransactionDisableActions];
...
layer.transform = CATransform3DMakeRotation(angle, 0, 0, 1);
...
[CATransaction commit];
Fait intéressant, lorsque mon angle est M_PI ou M_PI/2, ou il est tout à transformer l'échelle est ok, mais quand sa rotation et toute autre couche d'angles devient fou.
Est-ce que quelqu'un sait ce qui se passe et comment le réparer?
L'origine d'un CALayer est-elle au centre? Sinon, vous devrez d'abord transformer l'origine au centre, faire la rotation, puis la transformer. – user1118321
essayez ceci 'layer.anchorPoint = CGPointMake (0.5, 0.5);' – Bala
Est-ce que votre calque appartient à une vue? Si oui, la vue utilise-t-elle la mise en page automatique? Le système de mise en page automatique va essayer de définir le cadre de la vue, ce qui conduit généralement à des résultats étranges si votre vue est transformée. –