Как преобразовать (повернуть) уже существующий CALayer / анимацию? - PullRequest
3 голосов
/ 31 марта 2010

Я добавил CALayer в UIView моего приложения:

    CATransition *animation = [CATransition animation];
    [animation setDelegate:self];
    [animation setDuration:0.35];
    [animation setTimingFunction:UIViewAnimationCurveEaseInOut];
        animation.type = @"pageCurl";
        animation.fillMode = kCAFillModeForwards;
        animation.endProgress = 0.58;
    [animation setRemovedOnCompletion:NO];
    [[self.view layer] addAnimation:animation forKey:@"pageCurlAnimation"];

Теперь, когда пользователь поворачивает устройство, слой всегда остается в одной и той же позиции на экране (в соответствии с кнопкой домашнего экрана). Можно ли повернуть анимацию / слой? Я пытался

self.view.layer.transform = CGAffineTransformMakeRotation (angle);

но этот код просто вращает UIView, а не анимацию / слой, который я установил.

1 Ответ

4 голосов
/ 01 апреля 2010

Ошибка в том, что тип свойства CALayer для преобразования - CATransform3D, а вы передаете ему CGAffineTransform. использование CATransform3D CATransform3DMakeRotation (CGFloat angle, CGFloat x, CGFloat y, CGFloat z); вместо этого.

...