這裏是我的動畫代碼:CATransformLayer不支持隱式動畫?
CGFloat zDistance = 850;
CGFloat scaleFactor = BACK_COVER_WIDTH/self.transformLayer.bounds.size.width;
CATransform3D rotation = CATransform3DMakeRotation(M_PI, 0.0, 1.0, 0.0);
CATransform3D scale = CATransform3DMakeScale(scaleFactor, scaleFactor, 0.0);
CATransform3D transform = CATransform3DConcat(rotation, scale);
transform.m34 = 1.0/-zDistance;
CGPoint location = CGPointMake(CGRectGetMidX(self.layer.frame), CGRectGetMidY(self.layer.frame));
[CATransaction begin];
[CATransaction setAnimationDuration:1.0];
self.transformLayer.transform = transform;
self.transformLayer.position = location;
[CATransaction commit];
self.transformLayer
是CATransformLayer
有兩個子層,一個正面和一個背面(我創建一個「炫」的效果)。但是,這段代碼只是設置了位置並且沒有動畫就進行了轉換所以我認爲可能transform
不支持隱式動畫,所以我把它拿出來,試着設置位置,但是沒有動畫(我知道position
支持隱式動畫)。
我做錯了什麼或者CATransformLayer
只是不支持隱式動畫?文檔沒有說明它不支持它,所以我假設它。
編輯:這是Mac OS X,iOS的不
您是否嘗試過使用顯式動畫? – 2011-02-11 01:18:08