iphone: повторение трансформации - PullRequest
0 голосов
/ 04 мая 2010

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

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

Вот код:

-(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

1 Ответ

0 голосов
/ 16 июля 2010

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

transform = CGAffineTransformMakeRotation (RADIANS (0));

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...