我正在实现一个自定义UIView以显示在UIScrollview中。问题是我需要视图来放弃阴影所以我做了:
#import <QuartzCore/QuartzCore.h>
@implementation CustomView
-(void)setupView{
self.layer.shadowColor = [UIColor blackColor].CGColor;
self.layer.shadowOpacity = 0.5;
self.layer.shadowRadius = 1;
self.layer.shadowOffset = CGSizeMake(.6f, .6f);
self.layer.cornerRadius = 2;
[...]
}
-(id)initWithFrame:(CGRect)frame{
if((self = [super initWithFrame:frame])){
[self setupView];
}
return self;
}
[...]
关键是当我构建并运行它时,scrollview是如此之慢,我只需要删除那些我正在攻击“self.layer”的行,并且scrollview再次快速平滑。
了解为自定义视图添加阴影的正确方法是什么?
答案 0 :(得分:2)
这与UIView
移动时必须进行的所有重绘有关。
如果你对图层进行光栅化,它会变得更加平滑,这应该可以解决问题:
self.layer.rasterizationScale = [UIScreen mainScreen].scale;
self.layer.shouldRasterize = YES;
您可以尝试添加阴影路径:
self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds];
这可能会有所帮助。