私は単純なサイモン ゲームを作成しようとしています (色が点滅するシーケンスが増加し、ユーザーはそのシーケンスを繰り返さなければなりません)。私が行っている方法は、8 つの画像を持つ 4 つの UIView を持つことです。したがって、赤、青、緑、および黄色の UIView があります。そして、濃い緑、薄緑、濃い赤、薄い赤などのGIFがあります。
したがって、私のコードでは、UIView の transitionWithView アニメーション ブロックを使用しています。UIView imageView.image はデフォルトで暗い色の画像に設定されており、このブロックは明るい色の画像に移行し、完了すると暗い色の画像に戻ります ( 「ライトアップ」の外観)。
- (void) animateColor:(NSString *)color
{
...
//do stuff to default the dark and light image name and which UIView to animate based on the color parameter
...
[UIView transitionWithView:imageView
duration:.5
options: UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAutoreverse
animations:^{
imageView.image = [UIImage imageNamed:lightImage];
}
completion:^(BOOL finished){
if (finished){
imageView.image = [UIImage imageNamed:darkImage];
}
}];
}
これは、このコードのメソッドを 1 つの色で呼び出すとうまく機能します。
問題は、順番にアニメーション化したい NSArray または色があるとします。したがって、配列が「青」、「緑」の場合、青を使用して transitionWithView を呼び出し、青のビューをアニメーション化してから、緑のビューをアニメーション化します。現在、緑色のビューと青色のビューが同時にアニメーション化されます。
私は今NSTimerをいじろうとしていますが、うまくいきません。
アドバイスをいただければ幸いです。