当前位置:  开发笔记 > IOS > 正文

如何为CAGradientLayer提供"位置"

如何解决《如何为CAGradientLayer提供"位置"》经验,为你挑选了1个好方法。

我创造了CAGradientLayer三种颜色,我需要给每种颜色不同的位置.例:

Red = 0 to 50 %
Yellow = 51 to 80 %
Green = 81 to 100 %

我曾尝试用给startPointendPoint,但没有奏效.在此输入图像描述



1> luk2302..:

如果您将以下代码放入Playground,您将获得所需的确切输出:

let view = UIView(frame: CGRectMake(0,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,并将相同大小的数组定义为NSNumber0.0和1.0之间的数组.

不要使用startPointendPoint为此 - 它们用于定义从图层中显示渐变的位置 - 它与百分比和颜色等没有任何关系.


更新的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, 0.8, 1.0]
view.layer.addSublayer(layer)
PlaygroundPage.current.liveView = view

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有