为控件增加阴影、圆角阴影

有时做需求的时候,产品会要求这里加个圆角,那里加个阴影,还会同时需要圆角阴影,没处理过这种情况的时候第一时间还是会有点头疼的,这里给大家分享一个自己写的分类,包含有单独设置阴影以及同时设置圆角+阴影的两个方法
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同学吧

你可能感兴趣的:(为控件增加阴影、圆角阴影)