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