欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS UIView的圆角加阴影效果的实现

程序员文章站 2022-05-16 10:21:04
ios uiview的圆角加阴影效果的实现,最近项目的界面都要改成卡片的形式,即需要投影的效果,还要削出圆角,我们都知道削圆角一般有两种方式,一种是直接用layer.cornerradius来设置,...

ios uiview的圆角加阴影效果的实现,最近项目的界面都要改成卡片的形式,即需要投影的效果,还要削出圆角,我们都知道削圆角一般有两种方式,一种是直接用layer.cornerradius来设置,我们知道的一般都是下面两行代码一起使用来实现圆角:

self.layer.cornerradius = 10;
self.layer.maskstobounds=yes;

但是只要self.layer.maskstobounds=yes;有这句,投影的效果就出不来。
还有一种性能比较好的圆角设置方式,就是用uibezierpath来设置,我试过用这个来设置圆角的话,投影一样也出不来。
还有在网上看到了加一层layer的,大体思路就是self.layer来设置圆角,新写一个layer来设置投影,然后把layer放到self.layer上,我试了之后发现没什么效果,而且偏移会很明显的看出来,但不是以投影的方式出现。
然后又找到了一篇文章,给出的方法代码如下:

@implementation tpshadowview

-(instancetype)initwithframe:(cgrect)frame{
    self = [super initwithframe:frame];
    if (self) {
        self.backgroundcolor = kuicolorfromrgb(0x4b4773);
        //v.layer.maskstobounds=yes;这行去掉
        self.layer.cornerradius = 10;
        self.layer.shadowcolor = kuicolorfromrgb1(0x000000, 1).cgcolor;
        self.layer.shadowoffset = cgsizemake(2, 5);
        self.layer.shadowopacity = 0.5;
        self.layer.shadowradius = 5;

    }
    return self;
}

这个是我整理之后的写了个投影的view类,方便使用,核心就是注释着这行去掉的这个,当时看的时候,觉得有点不敢相信,但是那个博主给了投影效果,我就抱着试一下的心态写了,没想到还真的可以。。。
效果如图:
iOS UIView的圆角加阴影效果的实现