1

次のように、回転ジェスチャ認識エンジンのコールバックで calayer オブジェクトを回転させようとしています。

CGFloat angle = [(NSNumber *)[hitlayer valueForKeyPath:@"transform.rotation.z"] floatValue];

hitlayer.transform = CATransform3DMakeRotation( (angle+90) / 180.0 * M_PI, 0.0, 0.0, 1.0);

[hitlayer setValue:[NSNumber numberWithFloat:(angle+90)] forKey:@"transform.rotation.z"];

これは初めてうまく機能します。ただし、その後、transform.rotation.z によって返される値は元の値 (変換された値ではない) のままであるため、レイヤーはそれ以上回転しません。私が見逃しているアイデアはありますか?

ありがとう

4

1 に答える 1

2

このプロパティは、ビューまたはレイヤーの境界または中心を変更transformしません。描画時に変換を適用するだけなので、単に見た目が異なります。したがって、あなたの場合、最後の次数の値を追跡し、呼び出しごとに 90 を追加する必要があります。

于 2013-01-27T18:07:33.663 に答える