2010-03-31 2 views
3

Я добавил CALayer к UIView мое приложение:Как преобразовать (повернуть) уже существующий CALayer/animation?

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, а не анимацию/слой, который я установил.

ответ

4

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