IOS - 为图像添加阴影边框使其变得沉重且无响应

时间:2012-05-26 17:01:09

标签: ios border shadow

我正在开发一个iPad应用程序。 在我的应用程序中,用户可以移动,旋转和缩放图像。 我注意到当我为图像添加一个3d阴影边框时,它会让它们变得非常沉重和反应迟钝。我使用以下代码添加边框:

self.layer.MasksToBounds = false;
self.layer.ShadowColor = [[UIColor alloc] initWithRed:0 green:0 blue:0 alpha:0.5].CGColor;
self.layer.ShadowOpacity = 1.0f;
self.layer.ShadowOffset = CGSizeMake(0, 2.5f);

为什么会这样?我有什么方法可以解决这个问题?

2 个答案:

答案 0 :(得分:3)

这是CALayer阴影的一个众所周知的问题。同时设置shadowPath属性,您将看到良好的性能提升。

阴影路径可以只是图像视图边界的路径。您应该只需将其设置一次,并且图层变换将使图像缩放等时保持最新。

答案 1 :(得分:2)

您还应该设置

self.layer.ShouldRasterize = YES

将栅格化图层。如果将其设置为NO(默认),则将重新计算所有滤镜和在Layer上应用的阴影,这会花费很多性能。特别是在scrollviews或tableviews中。