美文网首页
UIView圆角与阴影的关系

UIView圆角与阴影的关系

作者: whbsspu | 来源:发表于2017-03-07 22:29 被阅读58次

今天在工作中遇到一个问题,如何给已经设置圆角的view添加阴影效果。通常我们的做法是这样的:

   UIView *view = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
    view.backgroundColor = [UIColor redColor];
  
    // 设置圆角
    view.layer.cornerRadius = 6;
    view.layer.masksToBounds = YES;
    
    // 设置阴影
    view.layer.shadowRadius = 6;
    view.layer.shadowOffset = CGSizeMake(0,2);
    view.layer.shadowColor = [UIColor blueColor].CGColor;
    view.layer.shadowOpacity = 0.8;

但是显示的效果并非我们期望的那样:


4A356817-C3F4-4F05-90B6-8AF983750683.png

为什么设置的阴影效果没有作用呢?
先理解setMasksToBounds的含义,setMasksToBounds表示对frame外的内容进行了裁减,只可显示frame内的内容。由于这种方法加的阴影在frame外,所以被裁减了。
如果想要达到即设置了圆角又设置阴影的效果,可以先把已经设置圆角的view1添加到view2中,view2的frame和view1相同。然后设置view2的阴影效果,这样便可以在视觉上看上去view1设置了圆角及阴影。具体代码如下:

   UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
    view1.backgroundColor = [UIColor redColor];
    view1.layer.cornerRadius = 6;
    view1.layer.masksToBounds = YES;
    
    UIView *view2 = [[UIView alloc]initWithFrame:view1.bounds];
    [view2 addSubview:view1];
    view2.layer.shadowRadius = 6;
    view2.layer.shadowOffset = CGSizeMake(0,2);
    view2.layer.shadowColor = [UIColor blueColor].CGColor;
    view2.layer.shadowOpacity = 0.8;

效果如下:

0E5983F6-6DEF-42E3-ACB6-1B6984A7049E.png

相关文章

  • UIView圆角与阴影的关系

    今天在工作中遇到一个问题,如何给已经设置圆角的view添加阴影效果。通常我们的做法是这样的: 但是显示的效果并非我...

  • iOS阴影设置详解

    UIView的阴影设置主要通过UIView的layer的相关属性来设置 阴影的颜色 阴影的透明度 阴影的圆角 阴影...

  • UIView加阴影

    UIView的阴影设置主要通过UIView的layer的相关属性来设置 阴影的颜色 阴影的透明度 阴影的圆角 阴影...

  • UIView圆角+阴影

    backView是要添加阴影的视图,思路是backView设置corner圆角,再添加一个带阴影的父视图,代码如下...

  • iOS给UIview 加阴影加圆角加边框

    iOS给UIview 加阴影加圆角加边框 - 简书 一. UIView的clipsToBounds和CALayer...

  • iOS view同时加阴影和圆角

    怎么给view加阴影的同时增加圆角: 顺序很重要,先加阴影后加圆角并且不切角;如: UIView *imgView...

  • iOS 圆角和阴影的一点采坑体会

    前提 iOS 对于UIView 圆角 和 阴影的设置一般都给予对layer的操作,通常做法为 圆角 阴影 二者的...

  • 【iOS】UIVie 圆角+阴影

    1.添加 UIView,设置 backgroundColor = nil 2.圆角 3.阴影 Demo地址

  • 设置UIView的圆角+阴影

    网上很多这个感觉好麻烦啊,下面直接贴代码吧 调用 效果

  • 为圆角View巧设阴影效果

    我们都知道,ios里可以通过UIView的layer属性为其设置圆角和阴影: 设置圆角: 注意:!!!上述两个...

网友评论

      本文标题:UIView圆角与阴影的关系

      本文链接:https://www.haomeiwen.com/subject/nvsvgttx.html