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類,方便使用,核心就是註釋着這行去掉的這個,當時看的時候,以爲有點不敢相信,可是那個博主給了投影效果,我就抱着試一下的心態寫了,沒想到還真的能夠。。。
 性能

相關文章
相關標籤/搜索