2013-02-11 42 views
3

是否可以修改分层支持的NSView的根CALayer上的anchorPoint属性?你可以在NSView上设置根层的anchorPoint吗?

我有一个叫做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

在10.8了AppKit将控制以下属性上的CALayer (既当“层举办”或“层支持”):geometryFlipped,边界, 帧(隐含),position,anchorPoint,transform,shadow *,hidden, filters和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); 
} 
相关问题