iOS 12 和 iOS 13 之间的 CAGradientLayer 不同

问题描述

我使用此代码从渐变生成 UIImage。

func buildGradientimage() -> UIImage? {
    let gradientLayer = CAGradientLayer()
    gradientLayer.frame = CGRect(x: 0,y: 0,width: 375,height: 667)
    gradientLayer.type = .radial
    gradientLayer.startPoint = CGPoint(x: 0.0,y: 0.0)
    gradientLayer.endPoint = CGPoint(x: 1.2,y: 1.0)
    gradientLayer.colors = [UIColor.red.cgColor,UIColor.green.cgColor]
    
    var gradientimage:UIImage?
    UIGraphicsBeginImageContext(gradientLayer.frame.size)
    if let context = UIGraphicsGetCurrentContext() {
        gradientLayer.render(in: context)
        gradientimage = UIGraphicsGetimageFromCurrentimageContext()
    }
    UIGraphicsEndImageContext()
    return gradientimage
}

出于某种原因,生成的图像在 iOS 12 和 iOS 13-14 之间有所不同。 红色似乎在 iOS 12 渐变上扩展得更多。

有人知道为什么会有这种差异吗?代码不应该生成相同的渐变吗?

Gradient difference between iOS 13-14 and iOS 12

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)