Ios UIView中的渐变色阴影&;带半径的按钮

Ios UIView中的渐变色阴影&;带半径的按钮,ios,swift,calayer,cashapelayer,cagradientlayer,Ios,Swift,Calayer,Cashapelayer,Cagradientlayer,我已经尝试了很多东西,但我不能做以下类型的渐变阴影 有人能帮忙做这样的事吗 我尝试了以下代码 func addGradientShadowToMakeReservation() { let gradientLayer = CAGradientLayer() gradientLayer.colors = [ UIColor(named: "GradiantColor1")!.cgColor, UIColor(name

我已经尝试了很多东西,但我不能做以下类型的渐变阴影

有人能帮忙做这样的事吗

我尝试了以下代码

func addGradientShadowToMakeReservation() {
    
    let gradientLayer = CAGradientLayer()

    gradientLayer.colors = [
        UIColor(named: "GradiantColor1")!.cgColor,
        UIColor(named: "GradiantColor2")!.cgColor,
        UIColor(named: "GradiantColor2")!.cgColor
    ]

    gradientLayer.frame = CGRect(x: self.viewReservationGradiant.frame.minX - 40,
    y: self.viewReservationGradiant.frame.minY - 40,
    width: self.viewReservationGradiant.frame.width + 80,
    height: self.viewReservationGradiant.frame.height + 80)
    
    gradientLayer.masksToBounds = true
    
    let shadowLayer = CALayer()
    shadowLayer.frame = gradientLayer.bounds
    shadowLayer.shadowColor = UIColor.black.cgColor
    shadowLayer.shadowOpacity = 0.08
    shadowLayer.shadowRadius = 20
    shadowLayer.shadowPath = CGPath(rect: shadowLayer.bounds, transform: nil)
    
    gradientLayer.mask = shadowLayer
    
    self.viewReservationGradiant.clipsToBounds = false
    
    self.viewReservationGradiant.layer.addSublayer(gradientLayer)
}

但它并没有像预期的那样帮助我。

您当前的结果是什么?它是“显示简单”按钮,此代码没有任何问题。您的方法中的
gradientLayer.frame
值是多少?我的意思是,您是否仅在调用didlayoutSubview后才应用渐变/阴影?不,我正在调用ViewWillDisplay中的方法。仍然可能太早了: