ios陰影圓角共存(代碼和xib)

先上圖


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è)置

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容