我有一个CALayer,我在屏幕上拖动。我想在图层上有一个阴影,所以我创建一个并将其栅格化为位图。我希望带有阴影的光栅化版本在没有阴影的情况下拖动时具有相同的性能,但情况更糟。如果图像是光栅化的,为什么会更糟?是否有更好的方法来添加阴影而不会显着降低性能?我按如下方式创建阴影和内容:
layer.contents = (id) [UIImage imageNamed:[dict objectForKey:@"imageURI"]].CGImage;
layer.shadowColor = [UIColor blackColor].CGColor;
layer.shadowOpacity = .5;
layer.shouldRasterize = YES;
layer.rasterizationScale = [[UIScreen mainScreen] scale];
答案 0 :(得分:2)
使用CALayer阴影时,应使用shadowPath
属性。你可以像这样使用它:
layer.shadowPath = [UIBezierPath bezierPathWithRect:layer.bounds].CGPath;