цель -c :выполнение нескольких блоков анимации transitionWithView

Я пытаюсь сделать простую игру Саймона (, в которой мигает возрастающая последовательность цветов, и пользователь должен попытаться повторить эту последовательность ). Я собираюсь сделать это, имея 4 UIViews с 8 изображениями. Итак, есть UIView для красного, синего, зеленого и желтого цветов. И у меня есть гифки темно-зеленого, светло-зеленого, темно-красного, светло-красного и т. д.

Итак, в моем коде я использую блок анимации 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];
                    }
                }];
}

Это прекрасно работает, когда я называю этот метод одним цветом.

Проблема в том, скажем, у меня есть NSArray или цвета, которые я хочу анимировать последовательно. Итак, если бы мой массив был «синим», «зеленым», я бы хотел, чтобы transitionWithView вызывался с использованием синего цвета, анимировал синий вид, а затем анимировал зеленый вид. Прямо сейчас он будет анимировать зеленый и синий вид одновременно.

Я пытаюсь поиграть с NSTimer прямо сейчас, но мне не очень повезло с этим.

Любые советы там будут высоко оценены.

5
задан 1 July 2012 в 17:52
поделиться