是否有可能修改anchorPoint
上root属性CALayer
一个层支持的NSView
?
我有一个观点叫myView
,似乎每次我设置的时间anchorPoint
,它在未来的运行循环被覆盖。 我这样做:
NSView *myView = [[myView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
//set the root layer
myView.layer = [CALayer layer];
myView.wantsLayer = YES;
//gets overridden on the next run loop
myView.layer.anchorPoint = CGPointMake(1,1);
上10.8,了AppKit将控制上的CALayer以下性质(两者当“层托管”或“层支持的”):geometryFlipped,边界,帧(暗示),位置,anchorPoint,变换,阴影*,隐藏,过滤器,和compositingFilter。 ...使用适当的NSView盖的方法来更改这些属性。
基本上,它会设置的锚为[0,0]从[0.5,0.5],考虑到这一点我使用的是这样的:
+(void) accountForLowerLeftAnchor:(CALayer*)layer
{
CGRect frame = layer.frame;
CGPoint center = CGPointMake(CGRectGetMidX(frame), CGRectGetMidY(frame));
layer.position = center;
layer.anchorPoint = CGPointMake(0.5, 0.5);
}