Я пытаюсь выполнить какую-то анимацию слоя в приложении для iPhone. Неважно, что я делаю, я всегда получаю одинаковые результаты: после того, как анимация завершена, она возвращается в исходное положение. Даже если я установил removedOnCompletion
в false, нет никакой разницы.Каким образом преобразование Core Animation всегда возвращается в исходное состояние?
Что мне здесь не хватает?
Заранее благодарен!
EDIT: На самом деле нужна помощь с помощью этого парня. Я создаю анимацию с объектами CAKeyframeAnimation
и CABasicAnimation
, а затем добавляю их к CAAnimationGroup
, которые я, в свою очередь, отношусь к слою. Анимация работает так, как было предсказано, за исключением того, что она всегда возвращается к исходному состоянию. Это так, хотя я установил removedOnCompletion = NO;
для всех анимационных объектов и группы анимации.
Кто-то, пожалуйста, указывайте мне в правильном направлении! Я живу в Стокгольме, я куплю тебе кофе. =) Новый код размещен ниже:
CABasicAnimation *leveloutLeafAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];
leveloutLeafAnimation.removedOnCompletion = NO;
leveloutLeafAnimation.duration = 1.0;
leveloutLeafAnimation.repeatDuration = 20;
CATransform3D transformLeafToRotation = CATransform3DMakeRotation(0.0, 0.0, 0.0, 1);
CATransform3D transformLeafFromRotation = CATransform3DMakeRotation([self _degreesToRadians:270.0], 0.0, 0.0, 1);
leveloutLeafAnimation.fromValue = [NSValue valueWithCATransform3D:transformLeafFromRotation];
leveloutLeafAnimation.toValue = [NSValue valueWithCATransform3D:transformLeafToRotation];
//Create an animation group to combine the animations.
CAAnimationGroup *theAnimationGroup = [CAAnimationGroup animation];
//The animationgroup conf.
theAnimationGroup.delegate = self;
theAnimationGroup.duration = animationDuration;
theAnimationGroup.removedOnCompletion = NO;
theAnimationGroup.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
theAnimationGroup.animations = [NSArray arrayWithObjects:leveloutLeafAnimation, leafMoveAnimation, nil];
// Add the animation group to the leaf layer.
[leafViewLayer addAnimation:theAnimationGroup forKey:@"animatLeafFalling"];
Большое спасибо Фрэнк Шмитт! Ты мужчина. theAnimationGroup.fillMode = kCAFillModeForwards; Был ключ. Если вы приедете в Стокгольме, я должен вам кофе. знак равно – ABeanSits