Mon*_*erK 10 iphone performance shadow
我在滚动视图上放了一些图像视图.当我拖动这个滚动视图时,我没有任何问题.
但是在我将阴影效果应用于这些图像视图后,拖动此滚动视图会导致性能下降.
我使用了shadowOpacity,shadowRadius和shadowOffset方法.
例如:
[ [ anImageView layer ] shadowOpacity: 1.0 ];
Run Code Online (Sandbox Code Playgroud)
如果使用阴影效果会严重影响性能,我会直接绘制图像的阴影.
如果有关于此问题的一些提示,请告诉我们.
我想以编程方式在iOS上使用阴影效果,因为我的绘图技巧最差.
谢谢你的阅读.
tc.*_*tc. 25
请参阅CALayer.shouldRasterize(iOS 3.2+,但shadowOffset/etc也是如此):
当此属性的值为YES时,图层将在其本地坐标空间中呈现为位图,然后使用任何其他内容合成到目标.滤镜属性中的阴影效果和任何滤镜都被栅格化并包含在位图中.
您可能还需要适当地设置rasterizationScale.
虽然使用reasterized层确实提高了性能,但使用shadowpath proerty会得到更好(更好)的结果,如@ wayne-hartman建议的那样.
查看http://nachbaur.com/blog/fun-shadow-effects-using-custom-calayer-shadowpaths,了解如何使用CALayer阴影路径.
无论何时使用阴影,最好使用bezier路径作为背景.这将帮助您设置shadowPath,这将大大提高性能.Rasterize将提高性能,但setShadowPath将比仅设置rasterize提高5倍.
path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 100, 100) cornerRadius:10];
[self.layer setShadowColor:[UIColor blackColor].CGColor];
[self.layer setShadowOpacity:1.0f];
[self.layer setShadowRadius:10.0f];
[self.layer setShadowPath:[path CGPath]];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3688 次 |
最近记录: |