Как навсегда оставить CALayer повернутым в его окончательном местоположении? - PullRequest
1 голос
/ 10 января 2011

Я пытаюсь повернуть слой CALay на определенный угол, однако, как только анимация завершена, слой возвращается в исходное положение.Как бы я правильно повернул слой, чтобы он оставался в конечном пункте назначения?

Вот код, который я использую

CABasicAnimation *rotationAnimation =[CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; //Rotate about z-axis
[rotationAnimation setFromValue:[NSNumber numberWithFloat:fromDegree]];
[rotationAnimation setToValue:[NSNumber numberWithFloat:toDegree]];
[rotationAnimation setDuration:0.2];
[rotationAnimation setRemovedOnCompletion:YES];
[rotationAnimation setFillMode:kCAFillModeForwards];

Есть предложения?Спасибо.

Ответы [ 2 ]

2 голосов
/ 10 января 2011

Вы добавляете анимацию, но не изменяете фактическое базовое свойство. После создания анимации просто установите свойство слоя transform, чтобы оно содержало тот же конечный результат.

2 голосов
/ 10 января 2011

Хорошо. Я исправил это, установив для параметра removeOnCompletion значение NO.

[rotationAnimation setRemovedOnCompletion:NO];
...