有时做需求的时候,产品会要求这里加个圆角,那里加个阴影,还会同时需要圆角阴影,没处理过这种情况的时候第一时间还是会有点头疼的,这里给大家分享一个自己写的分类,包含有单独设置阴影以及同时设置圆角+阴影的两个方法
https://github.com/Nedoloroso/categoryForCornerShadow
/**
为控件增加阴影
注:控件clipsToBounds必须为NO
@param shadowColor 阴影颜色
@param shadowOpacity 阴影透明度
@param shadowValue 阴影扩散距离
*/
- (void)addShadow:(UIColor *)shadowColor
shadowOpacity:(float)shadowOpacity
shadowValue:(CGFloat)shadowValue
{
self.layer.shadowColor = shadowColor.CGColor;
self.layer.shadowOpacity = shadowOpacity;
self.layer.shadowRadius = shadowValue;
self.layer.shouldRasterize = YES;
self.layer.shadowOffset = CGSizeMake(0, 0);
self.layer.rasterizationScale = [UIScreen mainScreen].scale;
}
/**
为控件增加阴影(带圆角)
注:控件clipsToBounds必须为NO
@param shadowColor 阴影颜色
@param shadowOpacity 阴影透明度
@param shadowValue 阴影扩散距离
*/
- (void)addShadow:(UIColor *)shadowColor
shadowOpacity:(float)shadowOpacity
shadowValue:(CGFloat)shadowValue
cornerRadius:(CGFloat)cornerRadius
{
self.layer.cornerRadius = cornerRadius;
[self addShadow:shadowColor shadowOpacity:shadowOpacity shadowValue:shadowValue];
}
- 需要注意的是控件本身的clipsToBounds必须为NO,否则不生效
- 对于阴影透明度和扩散距离可以通过ziplin或者蓝湖获取,如果没有那就问下UI同学吧