3

可能重复:
在 iPhone 和 iPad 上使用 Quartz 绘制阴影很慢。其他方式?

我创建了以下辅助方法来为我的 UIImageViews 添加阴影。它看起来不错,但我注意到它显着减慢了图形渲染速度,并且在旋转设备时看起来特别糟糕。我也偶尔收到Received memory warning.

- (void)addShadowToImageView:(UIImageView *)imageView;
{
  imageView.layer.shadowColor = [UIColor lightGrayColor].CGColor;
  imageView.layer.shadowOffset = CGSizeMake(0, 1);
  imageView.layer.shadowOpacity = 1;
  imageView.layer.shadowRadius = 1.0;
  imageView.clipsToBounds = NO;
}

如何优化此效果以提高性能?

4

1 回答 1

1

我会看看这篇文章:

在 iPhone 和 iPad 上使用 Quartz 绘制阴影很慢。其他方式?

它的要点是您应该使用 CALayer 的 shadowPath 属性,因为这是 CoreGraphics 能够优化阴影的方式。事实上,如果你检查这个属性的文档,你会看到

指定显式路径通常会提高渲染性能。

作为一般规则,直接操作 UIView 的层(处理阴影或角半径之类的事情)往往会显着降低性能。

于 2013-01-08T19:00:03.853 回答