先上圖

Simulator Screen Shot - iPhone X - 2018-08-10 at 11.23.45.png
陰影和圓角同時(shí)存在
無法共存的主要原因是屬性masksToBounds=YES(視圖的圖層上的子圖層,如果超出父圖層的部分就截取掉),設(shè)置為YES可以有圓角但是沒有陰影,設(shè)置為NO有陰影沒有圓角,既然圓角我能給你切走那陰影老夫也能給你切走,所以出現(xiàn)如此尷尬之場(chǎng)景。
解決:
CALayer可以完成視圖上的所有UI操作,那我們把CALayer當(dāng)成一個(gè)視圖加到view上,所以分為兩步實(shí)現(xiàn)
1:將需要操作的self.bg_view直接設(shè)置為圓角
self.bg_view.layer.cornerRadius = 6;
self.bg_view.layer.masksToBounds = YES;
2:創(chuàng)建CALayer并添加到self.bg_view的父視圖上(放在self.bg_view的下層)
CALayer *subLayer=[CALayer layer];
CGRect fixframe = self.bg_view.frame;
subLayer.frame= fixframe;
subLayer.cornerRadius=6;
subLayer.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:0.8].CGColor;
subLayer.masksToBounds=NO;
subLayer.shadowColor = [UIColor blackColor].CGColor;//shadowColor陰影顏色
subLayer.shadowOffset = CGSizeMake(3,2);//shadowOffset陰影偏移,x向右偏移3,y向下偏移2,默認(rèn)(0, -3),這個(gè)跟shadowRadius配合使用
subLayer.shadowOpacity = 0.8;//陰影透明度,默認(rèn)0
subLayer.shadowRadius = 4;//陰影半徑,默認(rèn)3
[self.layer insertSublayer:subLayer below:self.bg_view.layer];
方法二:
bgView.layer.shadowColor=[UIColor blackColor].CGColor;
bgView.layer.shadowOffset=CGSizeMake(5, 5);
bgView.layer.shadowOpacity=0.1;
bgView.layer.shadowRadius=5;
bgView.layer.cornerRadius=10;
//bgView.layer.masksToBounds = YES; 這句不能
xib創(chuàng)建控件并設(shè)置陰影圓角

QQ20190611-152217@2x.png
主要就是順序,先設(shè)置陰影再設(shè)置圓角
注:不能對(duì)圖片直接設(shè)置,可以在圖片下放一個(gè)view進(jìn)行陰影圓角設(shè)置