レイヤーに裏打ちされたビューがあり、アンカーポイントがどのように機能するかを理解したいのですが、(NSView のフレームプロパティを使用する代わりに) CALayer ジオメトリプロパティを操作することはまったく許可されていますか?
まず、ドキュメントから引用します:
anchorPoint のデフォルト値は (0.5,0.5) で、レイヤーの境界の中心に対応します。
しかし、アンカーポイントの値を (0.5,0.5) に直接変更しようとすると、オフセットが発生しました。例を次に示します。赤い領域は元の位置 (アンカー ポイントに何も適用されていない場合)、ボタンは左下隅に移動されました。
アンカーポイントを(0,0)ボタンに設定すると、あるべき場所に配置されます:
更新:
ボタンをインスタンス化するために使用するコードは次のとおりです。
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 です