UIView的圆角和阴影不能同时设置,所以给原来的view添加一个shadow container view。
问题原因:由于设置阴影需要masksToBounds设置为NO,而设置圆角需要masksToBounds为YES,有冲突。
/**
* 周边加阴影,并且同时圆角
*/
+ (UIView *)addShadowToView:(UIView *)view withOpacity:(float)shadowOpacity shadowRadius:(CGFloat)shadowRadius andCornerRadius:(CGFloat)cornerRadius {
view.layer.cornerRadius = cornerRadius;
view.layer.masksToBounds = YES;
UIView *shadowView = [[UIView alloc] init];
shadowView.layer.shadowColor = [UIColor blackColor].CGColor;
shadowView.layer.shadowOffset = CGSizeMake(0,2);
shadowView.layer.shadowOpacity = shadowOpacity;
shadowView.layer.shadowRadius = shadowRadius;
shadowView.layer.cornerRadius = cornerRadius;
shadowView.clipsToBounds = NO;
[shadowView addSubview:view];
return shadowView;
}
执行效果:
image.png
网友评论