0

5〜7秒などの特定の時間、頭を左から右に少し振るように(音楽を聞くときのように)回転させる漫画の顔の画像があります。だから、私は次のことをやっています:

-(void)rotation{

CABasicAnimation *rotate = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
[rotate setFromValue:[NSNumber numberWithFloat:0.0]];
[rotate setToValue:[NSNumber numberWithFloat:45]];
[rotate setDuration:5.0];
[rotate setAutoreverses:YES];
[rotate setTimingFunction:[CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut]];

[[faceImage layer] addAnimation:rotate forKey:@"dangleFaceImage"];

}

しかし、画像はボールのように回転しています!私のコードはまったく正しくないと思います。どうすればその回転を行うことができますか?

4

5 に答える 5

2

回転は度ではなくラジアンで値を取ります。

[rotate setToValue:[NSNumber numberWithFloat: 45*M_PI/180.]];
于 2013-05-03T05:03:59.460 に答える
0

左用

    CGAffineTransform transform = CGAffineTransformRotate(imgBg.transform, M_PI/-360);
    imgBg.transform = transform;

右側用

    CGAffineTransform transform = CGAffineTransformRotate(imgBg.transform, M_PI/360);
    imgBg.transform = transform;
于 2013-05-03T05:18:32.950 に答える
0

回転変換を使用して回転してみてください。最初にイメージを ImageView に設定する必要があります。それがfaceImageViewであると仮定します

faceImageView.transform = CGAffineTransformRotate(faceImageView.transform, angle);

希望の角度に回転します:)

于 2013-05-03T05:22:33.163 に答える
-1

レイヤーのアンカーポイントを設定する作業があります。顔を含むレイヤーのアンカーポイントを下中央下部に配置します。この時点からローテーションが行われます。すると首から頭が傾いているように見えます。

于 2013-05-03T05:04:21.500 に答える