CALayer - CABasicAnimation skaliert nicht um center / anchorPoint

Mit dem nachstehenden code ich habe versucht, meine CALayer zu skalieren um den Mittelpunkt, aber es skaliert von Links/oben (0,0). Ich sah diese Frage: Ankerpunkt in CALayer und haben versucht, die Einstellung der anchorPoint - aber es war [.5, .5], bevor ich es eingestellt und die Einstellung keinen Unterschied macht. Habe auch versucht die Einstellung contentsGravity.

Die eingerichtet ist, ich habe ein CAShapeLayer Hinzugefügt self.view.layer ich einige Zeichnung in es und fügen Sie dann die CABasicAnimation. Die animation läuft wunderbar - aber er skaliert es nach oben/Links - nicht in der Mitte der Ansicht.

Wurden basteln mit diesem für ein paar Stunden - es muss etwas einfach, aber ich bekomme es nicht.

shapeLayer.anchorPoint = CGPointMake(.5,.5);
shapeLayer.contentsGravity = @"center";

printf("anchorPoint %f  %f\n", shapeLayer.anchorPoint.x, shapeLayer.anchorPoint.y);

CABasicAnimation *animation =
[CABasicAnimation animationWithKeyPath:@"transform.scale"];

animation.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];
animation.toValue =   [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)];

[animation setDuration:1.0];
animation.fillMode=kCAFillModeForwards;
animation.removedOnCompletion=NO;
[shapeLayer addAnimation:animation forKey:@"zoom"];

InformationsquelleAutor der Frage No Grabbing | 2012-07-15

Schreibe einen Kommentar