2009-05-15 11 views
4

このコード:(自己NSViewのサブクラスである)コアアニメーションアンカーポイントが無視されていますか?

rotate = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; 

    rotate.duration = 5; 

    rotate.toValue = [NSNumber numberWithFloat:(2*pi)]; 

    rotate.repeatCount = INFINITY; 

    rotate.removedOnCompletion = NO; 
    rotate.fillMode = kCAFillModeForwards; 

    NSLog(NSStringFromPoint(CGToNSPoint([self layer].anchorPoint))); 

    [self layer].anchorPoint = CGPointMake(0.5, 0.5); 

    NSLog(NSStringFromPoint(CGToNSPoint([self layer].anchorPoint))); 

    [[self layer] addAnimation:rotate forKey:@"constantRotation"]; 

は、その中心の周りに私の層を回転させるべきです。アンカーポイントを(0.5、0.5)に設定しましたが、ビューはまだその原点を中心に回転しています。どうしてこれが起こっているのですか?私は役に立たなかったので、私はちょうど私がちょうど行方不明であることを本当に簡単なものだと確信しています...

NSLogは正しい値を報告しているようです。最初のレポートは(0,0)、2番目のレポートは(0.5,0.5)

+0

答えがありません。 self.layerのアンカーポイントを別の場所に設定するかどうかは不思議です。 (docs)[http://developer.apple.com/documentation/GraphicsImaging/Reference/CALayer_class/Introduction/Introduction.html#//apple_ref/occ/instp/CALayer/anchorPoint]によると(0.5、0.5) ... – EightyEight

+0

原点を中心に回転すると言うと、左下隅を意味しますか? –

答えて

2

既定のアンカーポイントは0.5,0.5であるため、設定する必要はありません。 が原点が本当にアンカーポイントにあるかのように表示されるように、レイヤーの内容を配置している可能性があります。

関連する問題