Создание постоянно вращающегося UIImageView

Я пробовал использовать такую ​​базовую анимацию:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    [UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear animations:^{ CGAffineTransform transform = CGAffineTransformMakeRotation(3.14);
        self->inner.transform = transform;
    } completion:NULL];
}

Это вращает мой UIImageView под названием external, но он не завершает вращение на 360 градусов плавно. Он прыгает после своих 3/4 или около того. Я не должен вращаться на PI?

Если я хочу изменить направление вращения, как я могу это сделать? Он вращается по часовой стрелке с точностью до минуты.

Спасибо


person dev6546    schedule 13.08.2012    source источник
comment
Это не очень хорошая практика ... Вы должны использовать свою собственную анимацию, не заставляя UIView постоянно вращаться за вас.   -  person Dustin    schedule 13.08.2012
comment
Стоит ли использовать кварц или что-то подобное?   -  person dev6546    schedule 13.08.2012
comment
Ты сможешь. Или, если у вас нет динамического содержимого, просто создайте массив изображений и используйте UIImageView объект animationImages.   -  person Dustin    schedule 13.08.2012
comment
попробуйте использовать M_PI вместо 3,14 и установите отрицательное значение, чтобы изменить направление   -  person wattson12    schedule 13.08.2012
comment
Спасибо, я пробовал это, но все равно не повезло   -  person dev6546    schedule 13.08.2012


Ответы (1)


Если кому-то еще это понадобится:

//outer ring
CABasicAnimation *fullRotationAnimation;
fullRotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
fullRotationAnimation.fromValue = [NSNumber numberWithFloat:0.0f];
fullRotationAnimation.toValue = [NSNumber numberWithFloat:2 * M_PI];
fullRotationAnimation.duration = 4;
fullRotationAnimation.repeatCount = 5000;
//fullRotationAnimation.cumulative = YES;
[self->outer.layer addAnimation:fullRotationAnimation forKey:@"360"];
person dev6546    schedule 13.08.2012