规模和中心calayer到superview

时间:2012-07-31 23:14:07

标签: objective-c

当我缩放图层时,结果始终设置为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];

1 个答案:

答案 0 :(得分:6)

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

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

然后将其位置设置为其superLayer的中心

self.maskLayer.position = (CGPoint){CGRectGetMidX(superLayer.bounds), CGRectGetMidY(superLayer.bounds)};