设置view的圆角和阴影

Posted YaphetsDiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置view的圆角和阴影相关的知识,希望对你有一定的参考价值。

1.设置view圆角

self.backView.clipsToBounds = YES;
self.backView.layer.cornerRadius = 6.f;

2.设置view阴影

    self.backView.layer.shadowColor = [UIColor blackColor].CGColor;//shadowColor阴影颜色
    self.backView.layer.shadowOffset = CGSizeMake(6,6);//shadowOffset阴影偏移,x向右偏移4,y向下偏移4,默认(0, -3),这个跟shadowRadius配合使用
    self.backView.layer.shadowOpacity = 0.5;//阴影透明度,默认0
    self.backView.layer.shadowRadius = 4;//阴影半径,默认3

  通过上面的方式设置阴影,必须把clipsToBounds关闭.

3.同时设置view的圆角和阴影

  如果上面的方法一起用,把masksToBounds开了,阴影无法显示,关了的话其上的View又会遮住圆角。解决的方式只能是再加一层layer。

    self.backView.backgroundColor = [UIColor whiteColor];
    self.backView.clipsToBounds = YES;
    self.backView.layer.cornerRadius = 6.f;
    //阴影效果
    CALayer *subLayer=[CALayer layer];
    CGRect fixframe=self.backView.layer.frame;
    fixframe.size.width=[UIScreen mainScreen].bounds.size.width-40;
    subLayer.frame=fixframe;
    subLayer.cornerRadius=6.f;
    subLayer.masksToBounds=NO;
    subLayer.shadowColor=[UIColor blackColor].CGColor;
    subLayer.shadowOffset=CGSizeMake(4,4);
    subLayer.shadowOpacity=0.8f;
    subLayer.shadowRadius=6.f;
    [self.backView.layer insertSublayer:subLayer below:self.backView.layer];

 

以上是关于设置view的圆角和阴影的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发之--storyboary下,为btn/lab/view等添加裁剪和阴影的方法

android CardView,LinearCardView,RelativeCardView自定义和使用

android CardView,LinearCardView,RelativeCardView自定义和使用

iOS同时设置圆角和阴影含部分圆角

wpf窗体设置阴影后,窗体圆角就会有阴影颜色,圆角就失效了,如何解决啊?求解

iOS tableViewCell 同时设置圆角和阴影