2010-05-04 2 views
0

Я пытаюсь представить представление, которое вращается на экране iphone. У меня есть кнопка, и когда вы ее нажимаете, вид поворачивается на 180 градусов.iphone: повторение преобразования

Моя проблема в том, что это работает только в первый раз.

Вот код:

-(IBAction) flip:(id)sender{ 

    CGAffineTransform transform; //the transform matrix to be used below 

    //BEGIN ANIMATIONS 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:2.0]; 

    //animate 
    if (flag){ 
     transform = CGAffineTransformMakeRotation(RADIANS(180)); 
    } else { 
     transform = CGAffineTransformMakeRotation(RADIANS(-180)); 
    } 
    flag = !flag; 
    transform = CGAffineTransformTranslate(transform, 0, 0); 
    self.mySuview.transform = transform; 

    //COMMIT ANIMATIONS 
    [UIView commitAnimations]; 

} 

В первый раз вы нажимаете, вид вращается нормально, но при нажатии снова ничего не происходит. Нет ошибок, никаких изменений в представлении.

Что мне не хватает?

Благодаря Gonso

+0

Попробуйте отладить этот метод, чтобы проверить, обрабатывается ли он как ожидается – Vladimir

+0

Да, метод запускается каждый раз, но ничего не происходит визуально – gonso

ответ

0

Вы в основном настройки преобразования, чтобы быть таким же, как раз. В вашем заявлении else {} используйте:

transform = CGAffineTransformMakeRotation (RADIANS (0));

Как и ваш код не принимает 180 и добавляет -180, он принимает 180 и устанавливает его на -180.