Как бесконечно поворачивать изображение на 360 градусов с помощью iPhone SDK? - PullRequest
0 голосов
/ 21 мая 2011

Я хочу бесконечно поворачивать изображение на 360 градусов с помощью iPhone SDK?

Как это можно сделать?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 01 января 2013
-(void)startAnimationWithRevolutions:(float)revPerSecond forTime:(float)time
{
    spinWheel.userInteractionEnabled = FALSE;
    float totalRevolutions = revPerSecond * time;
    [CATransaction begin];
    [CATransaction setValue:[NSNumber numberWithFloat:time] forKey:kCATransactionAnimationDuration];

    CABasicAnimation* spinAnimation = [CABasicAnimation
                                       animationWithKeyPath:@"transform.rotation"];
    CGAffineTransform transform = spinWheel.transform;
    float fromAngle = atan2(transform.b, transform.a);
    float toAngle = fromAngle + (totalRevolutions*4*M_PI);
    spinAnimation.fromValue = [NSNumber numberWithFloat:fromAngle];
    spinAnimation.toValue = [NSNumber numberWithFloat:toAngle];
    spinAnimation.repeatCount = 0;
    spinAnimation.removedOnCompletion = NO;
    spinAnimation.delegate = self;
    spinAnimation.timingFunction = [CAMediaTimingFunction functionWithName:
                                    kCAMediaTimingFunctionEaseOut];
    [spinWheel.layer addAnimation:spinAnimation forKey:@"spinAnimation"];
    [CATransaction commit];
}

Попробуйте использовать это, оно работает.

0 голосов
/ 21 мая 2011

Предполагая, что вы отображаете изображение в UIImageView, вы можете вращать локальную систему координат представления (см. здесь ) и использовать NSTimer для периодического увеличения вращения (см. здесь *) 1006 *).

(Я бы использовал OpenGL для этого, но это всего лишь личное предпочтение и, вероятно, это слишком для вашей ситуации.)

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