3

レイヤーに裏打ちanchorPointされた のルートのプロパティを変更することは可能ですか?CALayerNSView

と呼ばれるビューがあり、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);
4

1 に答える 1

2

10.8 では、AppKit は CALayer の次のプロパティを制御します (「レイヤー ホスト」または「レイヤー バック」の両方の場合): geometryFlipped、境界、フレーム (暗黙)、位置、アンカーポイント、変換、影*、非表示、フィルター、と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);
}
于 2014-02-17T08:58:58.517 に答える