iOS UICircularProgressRing径向渐变

时间:2018-03-19 17:27:24

标签: ios swift uicolor

我在swift 4项目中使用[UICircularProgressRing]库来显示progress circular bar。我使用的类型是gradient,它不是一个完整的圆圈。 start angle为120,end angle为60.我遇到gradient颜色问题。它不适用于径向。我想要一个以绿色开始的渐变,然后是黄色,最后是红色。与此图片相同,颠倒了第一种和最后一种颜色。

enter image description here

这就是我实际拥有的:

enter image description here

使用此代码:

func configureRing() {
        ringView.delegate = self
        let green = UIColor(hexString: "#31c8b4")!
        let yellow = UIColor(hexString: "#fbd16a")!
        let red = UIColor(hexString: "#fe160f")!
        ringView.ringStyle = .gradient

        ringView.gradientColors = [green, red]
        ringView.gradientColors = [green, yellow, red]
        ringView.gradientColorLocations = [0, 0.5, 1]
        ringView.gradientStartPosition = UICircularProgressRingGradientPosition.bottomLeft
        ringView.gradientEndPosition = UICircularProgressRingGradientPosition.bottomRight
        ringView.value = 100
    }

如您所见,黄色部分非常小。

[UICircularProgressRing] = https://github.com/luispadron/UICircularProgressRing

修改 当我添加更多颜色时,这就是我得到的:

ringView.gradientColors = [green, yellow, yellow, red]
ringView.gradientColorLocations = [0, 0.4, 0.6, 1]

enter image description here

1 个答案:

答案 0 :(得分:2)

我对UICircularProgressRing一无所知,但我知道如何指定渐变。因此,假设这是以正常方式工作,您可以尝试更类似的东西:

    ringView.gradientColors = [green, yellow, yellow, red]
    ringView.gradientColorLocations = [0, 0.4, 0.6, 1]

当然,根据需要调整颜色和位置。当我用普通的CAGradientLayer做那种事时,我明白了:

enter image description here

...它似乎沿着渐变分布颜色,而不是像你描述的那样。