でアニメーション変換を実行すると、異常な動作が発生しUIImageView
ます。以下のメソッドのコードは、左右に揺れているように画像を表示します。
-(void) shakeAnimation
{
float degrees = 30; //the value in degrees
imgShake.autoresizingMask = UIViewAutoresizingNone;
[UIView animateWithDuration:0.20f delay:0 options:(UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat) animations:^{
imgShake.transform = CGAffineTransformMakeRotation(degrees*M_PI/180);
} completion:^(BOOL finished) {
imgShake.transform = CGAffineTransformMakeRotation(1*M_PI/180);
NSLog(@"Shake finished");
}];
}
問題は、メソッドを呼び出す場所にあります。アニメーションでメソッドを呼び出すと、viewDidAppear
完全に機能するように見えます...しかし、他の理由でviewDidLoad
. viewDidLoad
で指定された速度ではなく、アニメーション関数からメソッドを呼び出したときanimateWithDuration
。おそらくもっと遅い0.70f
です。ここで見逃しているものはありますか?