保留蒙面UIView的阴影

时间:2015-06-05 12:21:37

标签: ios swift uiview custom-controls calayer

我正在尝试创建一个带阴影的半圈UIView。

我做的是:

  1. 创建一个UIView。
  2. 将它的backgroundColor设置为白色
  3. 设置CornerRadius,使其成为圆圈
  4. 使用view.layer.shadow属性

    为其添加阴影
    circleView.backgroundColor = UIColor.whiteColor();
    
    circleView.layer.cornerRadius = baseRoundView.bounds.height/2 ;
    
    circleView.layer.shadowColor = UIColor.blackColor().CGColor;
    circleView.layer.shadowOffset = CGSize(width: 0, height: -3);
    circleView.layer.shadowOpacity = 0.1;
    circleView.layer.shadowRadius = 1;
    

    但是那些步骤只让我得到了一个带阴影的完整圆形视角。

  5. Full Circle

    所以我试图掩盖下半部分

        var maskRect: CGRect = CGRect(x: 0, y: 0), width: self.circleView.bounds.width, height: self.circleView.bounds.height/2);
        var path = CGPathCreateWithRect(maskRect, nil);
    
        maskLayer.path = path;
    
        circleView.layer.mask = maskLayer;
    

    这些步骤效果很好,除了我丢失了顶部阴影 issing Shadow

    我希望拥有什么

    Expectation

    有什么想法吗?

1 个答案:

答案 0 :(得分:0)

作为Larme pointed out in the comment ,我所要做的就是调整maskLayer的Y位置来覆盖阴影。

var maskRect: CGRect = CGRect(x: 0, y: -3), width: self.circleView.bounds.width, height: self.circleView.bounds.height/2 + 3  );