2012-08-03 58 views
1

我有一个CALayer,我拖过屏幕。我想在图层上留下阴影,所以我创建一个并将其栅格化为位图。我希望带阴影的光栅化版本在被拖拽为没有阴影的图像时具有相同的性能,但情况更糟。如果图像被光栅化,为什么更糟?有没有更好的方式来添加阴影而不会显着降低性能?我创建了阴影,内容如下: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]; 

回答

2

当使用CALayer的影子,你应该使用shadowPath属性。你会这样使用它:

layer.shadowPath = [UIBezierPath bezierPathWithRect:layer.bounds].CGPath;