Meg*_*anX 1 ios cagradientlayer swift
这里有很多关于如何创建多色渐变的问题,但我正在努力的是在渐变区域很小的地方创建渐变。例如,我想查看 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)
Run Code Online (Sandbox Code Playgroud)
我在红色和橙色以及绿色和灰色之间得到了很好的渐变。但是橙色和绿色之间的渐变要大得多,看起来不太对。
我一直无法解决这个问题。任何解决方案?
按颜色顺序使用绿色两次。红橙绿绿灰。现在你可以在中间有一个大的纯绿色,在它的两侧有薄的过渡。例子:
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]
Run Code Online (Sandbox Code Playgroud)
这是一般原则;随心所欲地调整它。