3

を使用してiPhoneで3Dキューブを作成しましたCALayer's。ここで、ユーザーがそのcube()をダブルタップしたときにそのcube( CALayer)を回転させたいと思いました。90˚

CALayerそのcube( )を1回回転させることができまし90˚たが、ダブルタップするとcube(CALayer)が回転しません。

これが私がcube(CALayer)を回転させるために使用したコードです

CATransform3D x = CATransform3DRotate(currentLayer.sublayerTransform, M_PI / 2, 0, 0, 1);
currentLayer.transform = x;

誰もがこれを助けることができますか?私が間違っていること。


PS。どうやって学位を取得したのか疑問に思っている人のために、ここにトリックがあります

Option+K

4

1 に答える 1

2

回転角を変更していないためです....これを理解するには、毎回M_PI / 2をそのメソッドに渡すとしましょう....したがって、CATransform3DRotate回転せずにnext 90˚、レイヤーを指定された角度に回転させます。この場合は90...なので、すでに90˚.....にあるため、変更は発生しません。正しい結果を得るには、これを実行してください。

static float angle = M_PI / 2;//dont make it static rather make it a global variable
angle += M_PI / 2;
CATransform3D x = CATransform3DRotate(currentLayer.sublayerTransform,angle, 0, 0, 1);
currentLayer.transform = x;
于 2011-06-08T08:20:16.617 に答える