0

uiimageviewの回転アニメーションを作成する必要があります。私が考えることができる最も良い例えは、壁に掛かっている絵です。写真を支える釘は写真の上部に配置されます。

画像を押した場合、最終的に元の位置に戻るまで、画像のわずかな前後の揺れの動きをモデル化します。

最初にビューのアンカーポイントを変更することから始めなければならないことはわかっていますが、残りの問題にどのようにアプローチするかがわかりません。CABasicAnimationを使用することもできますが、比較的単純なアニメーションを取得するには、それは途方もなく複雑/やり過ぎになると思います。

助言がありますか?

[編集]

この答えは実際にブロックを使用してうまく機能しました:)

4

1 に答える 1

3

CABasicAnimationプロパティをアニメーション化しtransform.rotation、適切なタイミング関数を選択することはそれほど難しいことではないと思います。次のようなもの:

    CABasicAnimation* anim = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
    [anim setToValue:[NSNumber numberWithFloat:startAngle]];
    [anim setFromValue:[NSNumber numberWithDouble:endAngle]];
    [anim setDuration:duration];
    [anim setRepeatCount:count];
    [anim setAutoreverses:YES];
    [anim setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
    [selectedCoverView.layer addAnimation:anim forKey:@"SwingingRotation"];

重要なポイントは、適切なタイミング機能を選択することです。+ (id)functionWithControlPoints:(float)c1x :(float)c1y :(float)c2x :(float)c2y事前定義されたもののいずれも問題がない場合は、(制御点がベジェ曲線を定義する)を使用して任意のタイミング関数を定義できます。

于 2012-04-25T10:51:09.327 に答える