UIImageView - 为什么添加阴影会降低它的速度?

时间:2013-01-08 18:50:01

标签: objective-c ios uiimageview

  

可能重复:
  Drawing shadow with Quartz is slow on iPhone & iPad. Another way?

我创建了下面的帮助方法,为我的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;
}

如何针对性能优化此效果?

1 个答案:

答案 0 :(得分:1)

我会查看这篇文章:

Drawing shadow with Quartz is slow on iPhone & iPad. Another way?

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

  

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

作为一般规则,直接操作UIView层(做阴影或角半径等)往往会显着降低性能。