iOS設置圓角矩形和陰影效果


1.設置圓角矩形

    

     //設置dropview屬性

    _dropView.backgroundColor=[[UIColor whiteColor] colorWithAlphaComponent:0.8];

    _dropView.layer.cornerRadius = 8;

    _dropView.layer.masksToBounds = YES;//(或者_dropView.clipsToBounds=YES;)

 

    這里masksToBounds或者clipsToBounds的設置是對父視圖設置,設置后對子視圖超出部分裁減掉(否則子視圖還是會遮住圓角)。

2.設置陰影:

    _dropView.layer.shadowColor=[[UIColor grayColor] colorWithAlphaComponent:0.8].CGColor;

    _dropView.layer.shadowOffset=CGSizeMake(10,10);

    _dropView.layer.shadowOpacity=0.5;

    _dropView.layer.shadowRadius=8;

   // _dropView.layer.masksToBounds = YES;

    在通過這樣的方式設置陰影時,必須把父視圖的masksToBounds屬性關掉,因為陰影設置的方式就是加offset給超出視圖部分設置顏色來實現的,一旦不讓子視圖超出,陰影也就看不出了。

3.圓角+陰影

     如果上面的方法一起用,把masksToBounds開了,陰影無法顯示,關了的話其上的View又會遮住圓角。解決的方式只能是再加一層layer。

     

    

   
    _dropView.backgroundColor=[[UIColor whiteColor] colorWithAlphaComponent:0.8];
    _dropView.layer.cornerRadius = 8;
    _dropView.layer.masksToBounds = YES;
    CALayer *subLayer=[CALayer layer];

    CGRect fixframe=_dropView.layer.frame;

    fixframe.size.width=[UIScreen mainScreen].bounds.size.width-40;

    subLayer.frame=fixframe;

    subLayer.cornerRadius=8;

    subLayer.backgroundColor=[[UIColor grayColor] colorWithAlphaComponent:0.5].CGColor;

    subLayer.masksToBounds=NO;

    subLayer.shadowColor=[UIColor grayColor].CGColor;

    subLayer.shadowOffset=CGSizeMake(10,10);

    subLayer.shadowOpacity=0.5;

    subLayer.shadowRadius=8;

    [self.layer insertSublayer:subLayer below:_dropView.layer];

懸浮的感覺粗來了把。

    

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM