UICircularProgressRing

UICircularProgressRing

我在swift 4项目中使用[UICircularProgressRing]库以显示progress circular bar。我使用的类型是gradient,它不是一个完整的圆圈。 start angle是120,而end angle是60。我面临gradient颜色的问题。不适用于放射状。我想要一个渐变,从绿色开始,然后是黄色,最后是红色。与此图片相同,只是反转了第一个和最后一个颜色。

ios - iOS UICircularProgressRing径向渐变-LMLPHP

这是我实际上拥有的:

ios - iOS UICircularProgressRing径向渐变-LMLPHP

使用此代码:

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]

ios - iOS UICircularProgressRing径向渐变-LMLPHP

最佳答案

我对UICircularProgressRing一无所知,但是我知道如何指定渐变。因此,假设此操作正常,您可以尝试以下类似操作:

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

当然,可以根据需要调整颜色和位置。当我用普通的CAGradientLayer做这种事情时,我得到了:

ios - iOS UICircularProgressRing径向渐变-LMLPHP

...似乎沿渐变分布颜色,而不是您所描述的。

关于ios - iOS UICircularProgressRing径向渐变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49368958/

10-08 23:10