2010-03-31 56 views
3

我已經加入一個的CALayer到我的應用程序的的UIView:如何轉換(旋轉)已存在的CALayer /動畫?

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的transform屬性的類型是CATransform3D,而您正在給它一個CGAffineTransform。使用 CATransform3D CATransform3DMakeRotation(CGFloat角度,CGFloat x,CGFloat y,CGFloat z);改爲 。