gpt4 book ai didi

swift - CAGradientLayer 不绘制形式掩码

转载 作者:行者123 更新时间:2023-11-28 15:22:41 26 4
gpt4 key购买 nike

有一个CAShapeLayer

enter image description here

当我将它添加为 mask 时,我得到一个空白屏幕

这是我的代码:

    let width: CGFloat = frame.width
let radius: CGFloat = (width - 35) / 2

let poing = CGPoint(x: width / 2, y: radius + 8)
let path = UIBezierPath(arcCenter: poing, radius: (width - 35) / 2,
startAngle: CGFloat(180).toRadians(),
endAngle: CGFloat(360).toRadians(),
clockwise: true)

let mask = CAShapeLayer()
mask.path = path.cgPath

mask.lineWidth = 8
mask.strokeStart = 0
mask.strokeEnd = 1
mask.lineCap = kCALineCapRound
mask.fillColor = UIColor.clear.cgColor
mask.strokeColor = progressColor.cgColor

let gradient = CAGradientLayer()
gradient.frame = CGRect(x: 0, y: 0, width: frame.width, height: frame.height)
gradient.startPoint = CGPoint(x: 0, y: 1)
gradient.endPoint = CGPoint(x: 1, y: 1)
gradient.colors = [UIColor.white, UIColor.blue]

gradient.mask = mask

layer.addSublayer(gradient)

我不明白为什么它不起作用。

最佳答案

您只是忘记了 CALayer 始终使用 CGColor。

gradient.colors = [UIColor.white.cgColor, UIColor.blue.cgColor]

希望对你有帮助

关于swift - CAGradientLayer 不绘制形式掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45712080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com