使用下面的代码,我一直试图让我的 CALayer 围绕其中心进行缩放 - 但它按左/上 (0,0) 缩放。我看到了这个问题:CALayer中的锚点并尝试设置锚点 - 但在我设置它之前它是 [.5, .5] 并且设置没有区别。也试过设置contentsGravity
。
设置是我CAShapeLayer
添加了一个,self.view.layer
我在其中进行了一些绘图,然后添加了 CABasicAnimation。动画运行良好 - 但它向顶部/左侧缩放 - 而不是视图的中心。
已经修补了几个小时 - 它一定很简单,但我不明白。
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"];