是否可以修改支持图层的anchorPoint
的根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);
答案 0 :(得分:1)
在10.8上,AppKit将控制CALayer上的以下属性 (在“图层托管”或“图层支持”时):geometryFlipped,bounds, frame(隐含),position,anchorPoint,transform,shadow *,hidden, filters和compositingFilter。 ...使用适当的NSView封面 改变这些属性的方法。
基本上它会将锚从[0.5,0.5]设置为[0,0],为此我会使用类似的东西:
+(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);
}