imageview 上の 2 つの画像の間の点滅をアニメーション化して、ユーザーの注意をインジケーターに向けて変化に気付くようにしようとしています。新しい画像に残る前に、画像を 1 ~ 2 回だけ点滅させたいと思います。イベントのタイムラインは次のようになります。
- 古いイメージが設定され、特定のイベントが発生するのを待っています。
- イベントが発生し、点滅アニメーションが始まります。新しい画像が 0.25 秒間表示されます。
- 古い画像が 0.25 秒間表示されます。
- 新しい画像が 0.25 秒間表示されます。アニメーションが終了します。
アニメーションの時間枠が短いため、NSTimer を使用せずにこれを行う方法があるという印象を受けました。私の現在の試みは以下です
+(void)blinkImage:(UIImageView*)view toNewImage:(UIImage*)newImage numOfTimes:(int)numOfTimes{
float waitInterval = 0.25;
float totalWaitTime = 0.0;
UIImage *oldImage = view.image;
view.image = newImage;
totalWaitTime = totalWaitTime+waitInterval;
for (int times = 0; times<numOfTimes; times++) {
[UIView beginAnimations:@"setOld" context:nil];
[UIView setAnimationDelay:totalWaitTime];
[UIView setAnimationDuration:waitInterval];
view.image = oldImage;
totalWaitTime = totalWaitTime+waitInterval;
NSLog(@"SetOld; waitTime %f", totalWaitTime);
[UIView commitAnimations];
[UIView beginAnimations:@"setNew" context:nil];
[UIView setAnimationDelay:totalWaitTime];
[UIView setAnimationDuration:waitInterval];
view.image = newImage;
totalWaitTime = totalWaitTime+waitInterval;
NSLog(@"SetNew; waitTime %f", totalWaitTime);
[UIView commitAnimations];
}
}
しかし、これは期待された結果をもたらしませんでした。上記のコードでは、ビューは単純に新しい画像に変更され、それ以上何もしませんでした。
どんな助けでも大歓迎です。前もって感謝します!