3
我有一個視圖作爲對話框出現,當我想從父視圖中刪除它時,我將其不透明度設置爲動畫。CALayer/CABasicAnimation不透明度動畫緩存?
我用下面的代碼通過一個CABasicAnimation改變其不透明度:
CALayer *opacityOutLayer = sheetView.layer;
CABasicAnimation *fadeOutAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
fadeOutAnimation.fromValue = [NSNumber numberWithFloat:1.0];
fadeOutAnimation.toValue = [NSNumber numberWithFloat:0.0];
fadeOutAnimation.duration = 0.255;
[opacityOutLayer addAnimation:fadeOutAnimation forKey:@"opacity"];
這看起來在模擬器完美,但在設備上不是很順暢。有沒有什麼辦法來緩存動畫(就像使用UIView轉換緩存:YES)?
我敢肯定,這是非常簡單的,但在搜索文檔和CALayer類信息後,我找不到任何東西來緩存它。
謝謝你,這個伎倆,現在看起來很順利,很好! – ThisDarkTao 2011-05-05 12:20:09
也有一個影子應用到UITextView裏面,並且我也對該圖層進行了光柵化處理,現在和絲綢一樣光滑。再次感謝你! – ThisDarkTao 2011-05-05 12:31:52
太好了。我在我的答案中添加了一個警告,不要永久啓用'shouldRasterize'。有一個原因是默認禁用的。 – 2011-05-05 13:25:47