【问题标题】:Create gradient with 4 colors and small intersections?创建具有 4 种颜色和小交叉点的渐变?
【发布时间】:2021-02-12 00:25:24
【问题描述】:

这里有很多关于如何创建多色渐变的问题,但我正在努力创建渐变区域较小的渐变。例如,我想在视图中显示 4 种颜色,并且我希望颜色之间的 3 个交叉点具有小的渐变。

    gradientLayer = CAGradientLayer()
    gradientLayer.frame = gradientFrame
    let locations = [Float](arrayLiteral: 0.3, 0.35, 0.8, 0.85)
    gradientLayer.locations = locations.map { NSNumber(value: $0) }
    gradientLayer.colors = [UIColor.red.cgColor,
                            UIColor.orange.cgColor,
                            UIColor.green.cgColor,
                            UIColor.gray.cgColor]
    layer.insertSublayer(gradientLayer, at: 0)

我在红色和橙色以及绿色和灰色之间得到了很好的渐变。但是橙色和绿色之间的渐变要大得多,看起来也不对。

我无法解决这个问题。有什么解决办法吗?

【问题讨论】:

    标签: ios swift cagradientlayer


    【解决方案1】:

    在颜色序列中使用绿色两次。红橙绿绿灰。现在你可以在中间有一个大的纯绿色,在它的两边有一个薄的过渡。示例:

        let locations = [Float](arrayLiteral: 0.3, 0.35, 0.4, 0.8, 0.85)
        gradientLayer.locations = locations.map { NSNumber(value: $0) }
        gradientLayer.colors = [UIColor.red.cgColor,
                                UIColor.orange.cgColor,
                                UIColor.green.cgColor,
                                UIColor.green.cgColor,
                                UIColor.gray.cgColor]
    

    这是一般原则;随心所欲地调整它。

    【讨论】:

    • 可以使用两次以上以获得适当的比例:)
    • @えるまる 没错,我回答的最后一句就是这个意思。
    猜你喜欢
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多