Я генерирую gradient
из 2 UIColors
, а затем генерирую UIImage
из него с помощью этих функций.
//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()
}
Мой результат такой:
Но я хотел бы показать это по диагонали от верхнего левого угла до нижнего правого угла .... Так что Red
должен начинаться с верхнего левого угла и переходить вYellow
, когда он идет вниз по диагонали к правому нижнему углу.
Я не уверен, следует ли создавать градиент по диагонали или мне нужно поворачивать изображение после его создания, чтобы показать его по диагонали.
Спасибо