iOS UIView设置局部阴影

有时候,UI并不会给我们切带有阴影的图片,阴影就需要我们自己来做。(当然了,有图片是最好的)

举个栗子如图:

阴影.png

我们要给上图设置一个左侧的阴影,系统的方法shadowOffset可以满足,但是系统的方法只能设置单侧的阴影,我们需要多个方向变不可用。仔细观察,系统的阴影有个过渡的效果。所以我大胆猜测,如果自己实现左侧阴影的效果,实际上和上图阴影的区域是类似的。(这些在下面处理阴影的宽度有很大的关系)

通过shadowPath 实现局部阴影 ,因为系统的过渡效果,所以这个偏移为shadowPathWidth/2

    self.layer.masksToBounds = NO;
    
    self.layer.shadowColor = shadowColor.CGColor;
    
    self.layer.shadowOpacity = shadowOpacity;
    
    self.layer.shadowRadius =  shadowRadius;
    
    self.layer.shadowOffset = CGSizeZero;

   因为系统的过渡效果,所以这个偏移为shadowPathWidth/2
   CGRect shadowRect    = CGRectMake(originX, originY - shadowPathWidth/2, originW,  shadowPathWidth);

   UIBezierPath *path =[UIBezierPath bezierPathWithRect:shadowRect];
    
    self.layer.shadowPath = path.CGPath;

将常用的局部阴影效果封装为分类。

#import <UIKit/UIKit.h>
typedef enum :NSInteger{
    
    LXShadowPathLeft,
    
    LXShadowPathRight,
    
    LXShadowPathTop,

    LXShadowPathBottom,

    LXShadowPathNoTop,
    
    LXShadowPathAllSide

} LXShadowPathSide;
@interface UIView (LXShadowPath)

/*
 * shadowColor 阴影颜色
 *
 * shadowOpacity 阴影透明度,默认0
 *
 * shadowRadius  阴影半径,默认3
 *
 * shadowPathSide 设置哪一侧的阴影,
 
 * shadowPathWidth 阴影的宽度,

 */

-(void)LX_SetShadowPathWith:(UIColor *)shadowColor shadowOpacity:(CGFloat)shadowOpacity shadowRadius:(CGFloat)shadowRadius shadowSide:(LXShadowPathSide)shadowPathSide shadowPathWidth:(CGFloat)shadowPathWidth;

效果图:
局部阴影.gif

demo地址:UIView局部阴影

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 嗯哼嗯哼蹦擦擦~~~ 转载自:https://github.com/Tim9Liu9/TimLiu-iOS 目录 ...
    philiha阅读 5,246评论 0 6
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 15,136评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,872评论 25 709
  • 【花了很多心思】这是我听过独一无二的2015年http://music.163.com/useryear/inde...
    小孔老师阅读 169评论 0 0
  • 作者 谢宇创 人人都说"五岳归来不看山,九寨归来不看水",今年暑假妈妈带我和妹妹一起游览了四川九寨沟。 ...
    四七班编辑部阅读 269评论 0 0

友情链接更多精彩内容