Thi*_*Tao 3 iphone core-animation objective-c
我有一个显示为对话框的视图,当我希望它从父视图中删除时,我正在设置其不透明度.
我正在使用以下代码通过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"];
Run Code Online (Sandbox Code Playgroud)
这在模拟器中看起来很完美,但在设备上却不是很流畅.有没有办法缓存动画(比如使用UIView转换缓存:是)?
我确定这很简单,但在搜索文档和CALayer类信息后,我找不到任何缓存它的东西.
您可以尝试设置layer.shouldRasterize = YES;并查看是否可以提高性能.
但请注意,shouldRasterize一旦图层内容发生变化,这将大大减慢合成速度.因此,您应该只为某个动画启用它,然后再次禁用它.
| 归档时间: |
|
| 查看次数: |
4983 次 |
| 最近记录: |