QuartzCore .layer.shadow 的性能提升。每次发生变化时,它们似乎都需要重新渲染,从而导致一切滞后。
Coregraphics 渐变(用于 1 路阴影) - 看起来不正确。如果您的渐变从 0.3 alpha 变为 0,它会产生一些奇怪的效果,您可以“看到”它停止。就是不好看,也不自然。也许它没有抖动,但我确信我听说核心图形渐变是。很奇怪,我不知道。
Coregraphics 阴影 - 设置它们时需要一段时间来渲染,但除此之外性能非常好。就在您等待 View 出现的那一刻,因为它必须首先渲染它的阴影,这就是问题所在。
所以我一定错过了什么。是否有另一种看起来正确且渲染时间和性能都很快的方法?
最佳答案
添加 shadowPath 应该会给您带来巨大的性能提升。以下示例假设您只想要 View 两侧的阴影
CGPathRef path = [UIBezierPath bezierPathWithRect:view.bounds].CGPath;
[view.layer setShadowPath:path];
编辑: 默认情况下,CALayer 在动画期间绘制阴影,以下代码允许您将阴影缓存为位图并重复使用它而不是重新绘制它:
self.view.layer.shouldRasterize = YES;
// Don't forget the rasterization scale
// I spent days trying to figure out why retina display assets weren't working as expected
self.view.layer.rasterizationScale = [UIScreen mainScreen].scale;
关于iphone - 在 iOS 上做阴影的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10133109/