你可以这样做
初始化你的渐变层
let gradientLayer = CAGradientLayer.init()
gradientLayer.colors = [UIColor.red.cgColor,
UIColor.yellow.cgColor,
UIColor.green.cgColor,
UIColor.blue.cgColor]
gradientLayer.transform = CATransform3DMakeRotation(CGFloat.pi / 2, 0, 0, 1)
Run Code Online (Sandbox Code Playgroud)
从按钮的框架中设置首选大小,例如 40
gradientLayer.frame = CGRect.init(
x: button.frame.minX - 40,
y: button.frame.minY - 40,
width: button.frame.width + 80,
height: button.frame.height + 80)
gradientLayer.masksToBounds = true
Run Code Online (Sandbox Code Playgroud)
初始化阴影层
let shadowLayer = CALayer.init()
shadowLayer.frame = gradientLayer.bounds
shadowLayer.shadowColor = UIColor.black.cgColor
shadowLayer.shadowOpacity = 0.08
shadowLayer.shadowRadius = 20
shadowLayer.shadowPath = CGPath.init(rect: shadowLayer.bounds, transform: nil)
Run Code Online (Sandbox Code Playgroud)
将阴影层设置为渐变层的蒙版
gradientLayer.mask = shadowLayer
Run Code Online (Sandbox Code Playgroud)
在按钮层下面的按钮的 superView 中插入渐变层
backgroungView.layer.insertSublayer(gradientLayer, below: button.layer)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5052 次 |
| 最近记录: |