CALayer 添加圆角阴影

使用pod

pod 'UIShadow+UIView'

iOS开发中给一张图片或者一个UIView 添加圆角的同时再设置阴影,阴影会无法显示的,如:

_coverImgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cover.jpg"]];
_coverImgView.bounds = CGRectMake(0, 0, 240, 320);
_coverImgView.center = CGPointMake(CGRectGetWidth(self.view.frame) / 2, CGRectGetHeight(self.view.frame) / 2);
_coverImgView.clipsToBounds = YES;
_coverImgView.layer.cornerRadius = 6.0;
_coverImgView.layer.shadowColor = [UIColor redColor].CGColor;
_coverImgView.layer.shadowOffset = CGSizeZero;
_coverImgView.layer.shadowRadius = 5.0;
_coverImgView.layer.shadowOpacity = 1.0;
[self.view addSubview:_coverImgView];

效果如下:


Simulator Screen Shot - iPhone Xs - 2019-06-11 at 15.15.09.png

clipsToBounds 设置成 NO 试试 _coverImgView.clipsToBounds = NO;

Simulator Screen Shot - iPhone Xs - 2019-06-11 at 15.18.04.png

再试试用CALayer做一个带阴影的圆角

CALayer *layer = [CALayer layer];
layer.bounds = CGRectMake(0, 0, 240, 320);
layer.position = CGPointMake(CGRectGetWidth(self.view.frame) / 2, CGRectGetHeight(self.view.frame) / 2);
layer.cornerRadius = 6.0;
layer.backgroundColor = [UIColor whiteColor].CGColor;
layer.shadowColor = [UIColor redColor].CGColor;
layer.shadowOffset = CGSizeZero;
layer.shadowRadius = 5.0;
layer.shadowOpacity = 1.0;
[self.view.layer addSublayer:layer];
Simulator Screen Shot - iPhone Xs - 2019-06-11 at 15.23.34.png

自己写了一个交换方法,给UIView添加一个背景CALayer,用这个CALayerUIView的阴影

_coverImgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cover.jpg"]];
_coverImgView.bounds = CGRectMake(0, 0, 240, 320);
_coverImgView.center = CGPointMake(CGRectGetWidth(self.view.frame) / 2, CGRectGetHeight(self.view.frame) / 2);
_coverImgView.shadow_opacity = 1.0;
_coverImgView.shadow_color = [UIColor redColor];
_coverImgView.shadow_offset = CGSizeZero;
_coverImgView.shadow_radius = 3.0;
_coverImgView.shadow_corner_radius = 6.0;
_coverImgView.showShadowLayer = YES;
[self.view addSubview:_coverImgView];
    
//    or use below function
//    [_coverImgView showDefaultShadow];

再次运行:


Simulator Screen Shot - iPhone Xs - 2019-06-11 at 15.28.20.png

GitHub地址:UIShadow+UIView
如有不足之处,欢迎指出🙂

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 CALayer IOS SDK详解之CALayer(一) http://doc.okbase.net/Hell...
    Kevin_Junbaozi阅读 5,210评论 3 23
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,141评论 5 13
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32
  • 声明 该篇文章的内容参考自 iOS核心动画高级技巧 一文,非常感谢其作者和中文版的作者,让我能够相对系统的学习 C...
    小白进城阅读 922评论 0 1
  • 1.《暗战》:最让人心疼的华仔,最美丽的蒙嘉慧 电影最美的画面是刘德华和蒙嘉慧在小巴士上偶遇,这也是全戏两人仅有的...
    伊滴墨阅读 291评论 0 3