1

我正在开发一个 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);

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

4

2 回答 2

3

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

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

于 2012-05-26T17:05:06.703 回答
2

您还应该设置

self.layer.ShouldRasterize = YES

这将栅格化图层。如果将其设置为 NO(默认),则应用在图层上的所有过滤器和阴影将被重新计算多次,这会消耗相当多的性能。特别是在滚动视图或表格视图中。

于 2012-05-26T21:24:20.170 回答