【iOS】UIVie 圆角+阴影

2,377 阅读1分钟

最终效果

1.添加 UIView,设置 backgroundColor = nil

添加 UIView

2.圆角

private func settingRoundCorner() {
        let roundLayer = CAShapeLayer()
        roundLayer.fillColor = UIColor.red.cgColor
        let rect = roundView.bounds
        roundLayer.frame = rect
        let roundPath = UIBezierPath(roundedRect: rect, cornerRadius: 20)
        roundLayer.path = roundPath.cgPath
        // 设置 mask 也能达到圆角效果,但是不能再设置阴影效果
        // roundView.layer.mask = roundLayer
        roundView.layer.addSublayer(roundLayer)
    }

3.阴影

private func settingShadow() {
        let rect = roundView.bounds
        roundView.layer.shadowColor = UIColor.black.cgColor
        roundView.layer.shadowRadius = 20
        roundView.layer.shadowOpacity = 0.69
        // 设置 shadowOffset 会产生离屏渲染
        // roundView.layer.shadowOffset = CGSize(width: 5, height: 5)
        let path = UIBezierPath(rect: rect.offsetBy(dx: 5, dy: 5))
        roundView.layer.shadowPath = path.cgPath
    }

Demo地址