我在使用阴影效果方面表现不佳

|| 我在滚动视图上放置了一些图像视图。 当我拖动此滚动视图时,我没有任何问题。 但是,当我将阴影效果应用于这些图像视图后,拖动此滚动视图会产生不良性能。 我使用了shadowOpacity,shadowRadius和shadowOffset方法。 例如:
[ [ anImageView layer ] shadowOpacity: 1.0 ];
如果使用阴影效果会严重影响性能,我将直接绘制图像的阴影。 如果有关于此问题的一些提示,请告诉我。 我想以编程方式在iOS上使用阴影效果,因为我的绘画技巧最差。 感谢您的阅读。     
已邀请:
        请参阅CALayer.shouldRasterize(iOS 3.2+,但shadowOffset / etc也是如此):   当此属性的值为YES时,该图层将在其本地坐标空间中呈现为位图,然后与其他任何内容合成到目标。阴影效果和滤镜属性中的所有滤镜都已栅格化并包含在位图中。 您可能还想适当地设置rasterizationScale。     
        虽然使用重新格式化的图层确实可以提高性能,但使用@ wayne-hartman建议的阴影路径属性,您将获得更好的(更好的)结果。 有关如何使用CALayer阴影路径的信息,请查看http://nachbaur.com/blog/fun-shadow-effects-using-custom-calayer-shadowpaths。     
        每当使用阴影时,最好使用贝塞尔曲线路径作为背景。这将帮助您设置shadowPath,从而大大提高性能。栅格化可以提高性能,但是setShadowPath可以比设置栅格化提高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]];
    
        我遇到了完全相同的问题。绘制阴影是一项相当昂贵的多遍操作,因此我可以理解它,并且我认为在滚动时会不断绘制阴影。我发现的唯一解决方法是将阴影手动渲染为图像,并在滚动条中将图像显示在图像的后面。这似乎运作良好。     

要回复问题请先登录注册