Как анимировать вращение UIImageView несколько раз подряд - PullRequest
1 голос
/ 05 января 2011

Я пытаюсь анимировать представление UIImage, каждый раз на 90 градусов по часовой стрелке. По какой-то причине первая анимация вращения работает, но затем она останавливается (даже если анимация изменения размера другого вида продолжает работать). Это почему? (Я посмотрел везде, но не смог найти ответ)

{
        [btn setFrame:CGRectMake(previousX, previousY, BUTTON_WIDTH, BUTTON_HEIGHT)];
        [self.view insertSubview:btn atIndex:0];

        [UIView beginAnimations:@"ButtonAnimation" context:nil];

        [UIView setAnimationDuration:2.5];

        [UIView setAnimationCurve:UIViewAnimationCurveLinear];

        CGRect rect = CGRectMake(previousX,previousY+BUTTON_HEIGHT,BUTTON_WIDTH,BUTTON_HEIGHT);

         btn.frame = rect;

        [UIView setAnimationBeginsFromCurrentState:YES]; 

        ++ButtonCounter;
         if (ButtonCounter < [btnArray count])
            {

                [UIView setAnimationDidStopSelector:@selector(didStopReal)];
            }
            else
            {
                ButtonCounter = 0; 
            }


        // The transform matrix
        CGAffineTransform transform = 
        CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(90));

        imgArrowView.transform = transform;


        [UIView setAnimationDelegate:self];
        [UIView commitAnimations];
}

-(void) didStopReal
{
    [self animteReal:ButtonCounter];
}

1 Ответ

3 голосов
/ 05 января 2011

Создайте свою матрицу преобразования относительно текущего преобразования:

CGAffineTransform transform = 
CGAffineTransformRotate(imgArrowView.transform, DEGREES_TO_RADIANS(90));
...