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

有时做需求的时候,产品会要求这里加个圆角,那里加个阴影,还会同时需要圆角阴影,没处理过这种情况的时候第一时间还是会有点头疼的,这里给大家分享一个自己写的分类,包含有单独设置阴影以及同时设置圆角+阴影的两个方法
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同学吧
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容