2012-02-21 3 views
0

Можно создать дубликат:
Can I use CGAffineTransformMakeRotation to rotate a view more than 360 degrees?Прялка Игра: Проблема с вращением изображения

Я пытаюсь создать игру, где нажатием кнопки прядет, наберите изображение, возникли проблемы с вращение код. Цель состоит в том, чтобы открутить изображение от его текущего положения на% от 360, т. Е. 4 * 360, вращать изображение на 144 градуса. Спасибо, парни!

-(IBAction)spin:(id)sender 
{ 

    float strenght = DEGREES_TO_RADIANS(.5 * 360); 

    [UIView animateWithDuration:0.5f delay:0.0f options:UIViewAnimationCurveEaseOut animations:^ 
    { 
     [spinner_iv setTransform:CGAffineTransformRotate([spinner_iv transform],strenght)]; 
    } 
    completion:^(BOOL finished) 
    { 
     //done 
    }]; 
} 
+0

Что случилось с тем, что у вас есть? Что/не работает? –

+0

просто дает неожиданные результаты, он работает, если вращаться на <179 градусов за раз, что-то не работает. Заметил, когда NSLogging мой spinner_iv вращается он от 0-180, -180-0 ... я потерян. о, и спасибо за ответ. –

+0

Показать код 'DEGREES_TO_RADIANS' –

ответ

0

Преобразование градусов в радианах

радианы = градусы * (PI/180)

+0

Я не мог видеть ваш код, поэтому я предполагаю, что это может быть, что не так. –

1

UIView анимации с помощью CGAffineTransform взять 'кратчайший путь', так что если вы запрашиваете вращение по часовой стрелке 270 градусов , он будет анимировать против часовой стрелки на 90 градусов.

Вы можете получить любое количество спинов, если вместо этого вы поворачиваете слой с помощью CATransform3D - да, используйте это, даже если вы вращаетесь в 2D. См. Can I use CGAffineTransformMakeRotation to rotate a view more than 360 degrees?

Смежные вопросы