我正在开发一个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);
为什么会这样?我有什么方法可以解决这个问题?
答案 0 :(得分:3)
这是CALayer阴影的一个众所周知的问题。同时设置shadowPath
属性,您将看到良好的性能提升。
阴影路径可以只是图像视图边界的路径。您应该只需将其设置一次,并且图层变换将使图像缩放等时保持最新。
答案 1 :(得分:2)
您还应该设置
self.layer.ShouldRasterize = YES
将栅格化图层。如果将其设置为NO(默认),则将重新计算所有滤镜和在Layer上应用的阴影,这会花费很多性能。特别是在scrollviews或tableviews中。