iOS UIView的圆角单边加阴影效果的问题

 iOS UIView的圆角加阴影效果的实现,最近项目的界面都要改为卡片的形式,即须要投影的效果,还要削出圆角,咱们都知道削圆角通常有两种方式,一种是直接用layer.cornerRadius来设置,咱们知道的通常都是下面两行代码一块儿使用来实现圆角:php

[Java] 查看源文件 复制代码
?
1
2
self.layer.cornerRadius = 10;
self.layer.masksToBounds=YES;

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

[Java] 查看源文件 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
@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类,方便使用,核心就是注释着这行去掉的这个,当时看的时候,以为有点不敢相信,可是那个博主给了投影效果,我就抱着试一下的心态写了,没想到还真的能够。。。
 性能

相关文章
相关标签/搜索