如何在视图中对角线显示渐变

Ced*_*ith 1 gradient uikit uiimage ios swift

gradient从 2生成 a UIColors,然后UIImage使用这些函数从中生成 a。

//Function to generate the UIImage from 2 colors.
func createGradient(color1: UIColor, color2: UIColor) -> UIImage {
    let gradientLayer = CAGradientLayer()
    gradientLayer.frame = self.view.bounds
    gradientLayer.colors = [color1.cgColor, color2.cgColor]
    let image = image(from: gradientLayer)
    return image
}

//Function to generate an Image from a CALayer.
func image(from layer: CALayer) -> UIImage {
    UIGraphicsBeginImageContextWithOptions(layer.frame.size, true, 0)
    layer.render(in: UIGraphicsGetCurrentContext()!)
    let outputImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return outputImage ?? UIImage()
}
Run Code Online (Sandbox Code Playgroud)

我的结果是这样的

在此输入图像描述

但我想从左上角到右下角对角地显示这个......所以Red应该从左上角开始,并Yellow随着它对角线向下到右下角而淡入。

我不确定是否应该对角生成渐变,或者是否应该在生成图像后旋转图像以对角显示。

谢谢

And*_*tta 5

只需将startPoint和添加endPoint到渐变层即可:

[...]
gradientLayer.startPoint = .init(x: 0, y: 0) // top left
gradientLayer.endPoint = .init(x: 1, y: 1) // bottom right
[...]
Run Code Online (Sandbox Code Playgroud)