我有一个支持图层的视图,想要了解锚点的工作原理,并且完全可以使用CALayer几何属性(而不是使用NSView的frame属性)
首先,引用文档:
anchorPoint的默认值是(0.5,0.5),对应于 图层边界的中心
但是当我尝试直接将锚点的值更改为(0.5,0.5)时,我得到了偏移量。下面是示例,红色区域是原始位置(当没有应用于锚点时),按钮被移动到左下角:
当我将锚点设置为(0,0)按钮时,它应该放在:
更新:
以下是我用来实例化Button的代码:
self.button = [[NSButton alloc] initWithFrame:NSMakeRect(130, 130, 100, 40)];
self.button.title = @"My Title";
self.button.wantsLayer = YES;
NSLog(@"Button anchor Point is : (%f;%f)", self.button.layer.anchorPoint.x, self.button.layer.anchorPoint.y);
[panelView addSubview:self.button];
有趣的是,对于图层支持的视图来说,默认锚点是0,0:
NSLog(@"Button anchor Point is : (%f;%f)", self.button.layer.anchorPoint.x, self.button.layer.anchorPoint.y);
生成(0.000000; 0.000000)
毕竟,OS X部署目标是10.8
答案 0 :(得分:1)
以下是关于NSView的Apple文档的引用:
使用图层支持的视图时,不应直接与之交互 层。
似乎此代码跨越了您可以对图层支持的视图执行的操作的边界。