ios – 如何为CAGradientLayer提供“位置”

我创建了CAGradientLayer有三种颜色,我需要给每种颜色不同的位置.
例:
Red = 0 to 50 %
Yellow = 51 to 80 %
Green = 81 to 100 %

我尝试过给startPoint和endPoint,但它没有工作.

解决方法

如果您将以下代码放入Playground,您将获得所需的确切输出
let view = UIView(frame: CGRectMake(0,200,100))

let layer = CAGradientLayer()
layer.frame = view.frame
layer.colors = [UIColor.greenColor().CGColor,UIColor.yellowColor().CGColor,UIColor.redColor().CGColor]
layer.locations = [0.0,0.8,1.0]

view.layer.addSublayer(layer)

XcpshowView("ident",view: view)

输出

您只需将颜色定义为CGColors数组,并将相同大小的NSNumber定义为0.0到1.0之间.

不要使用startPoint和endPoint – 它们用于定义层中显示渐变的位置 – 它与百分比和颜色等没有任何关系.

更新的Swift3版本代码

let view = UIView(frame: CGRect(x: 0,y: 0,width: 200,height: 100))
let layer = CAGradientLayer()
layer.frame = view.frame
layer.colors = [UIColor.green.cgColor,UIColor.yellow.cgColor,UIColor.red.cgColor]
layer.locations = [0.0,1.0]
view.layer.addSublayer(layer)
PlaygroundPage.current.liveView = view

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...