5

当我缩放图层时,结果始终将原点设置为 CGPoint(0,0)。确保缩放后图层仍位于其超级图层中心的最佳方法是什么?

[CATransaction begin];
[CATransaction setAnimationDuration: 0];
[CATransaction setDisableActions: TRUE];

self.maskLayer.transform = CATransform3DScale(CATransform3DIdentity, .8, .8,1);
self.maskLayer.position = CGPointMake(kScreenWidth/2,kScreenHeight/2);

[CATransaction commit];
4

1 回答 1

9

您需要将图层的锚点设置为其中心:

self.maskLayer.anchorPoint = CGPointMake(0.5, 0.5);

然后将其位置设置为其超层的中心

self.maskLayer.position = (CGPoint){CGRectGetMidX(superLayer.bounds), CGRectGetMidY(superLayer.bounds)};
于 2012-07-31T23:18:49.820 回答