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

レイヤーの anchorPoint をその中心に設定する必要があります。

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

その位置をそのスーパーレイヤーの中心に設定します

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