iPhone SE 和其他人之间的 CAGradientLayer 不同结果

CAGradientLayer different result between iPhone SE and others

我有一个 CAGradientLayer,没什么复杂的

    let gradient: CAGradientLayer = CAGradientLayer()
    gradient.colors = [UIColor.clear.cgColor, Colors.Corporate.cgColor]
    gradient.locations = [0.0 , 1.0]
    gradient.startPoint = CGPoint(x: 0.0, y: 0.0)
    gradient.endPoint = CGPoint(x: 0.0, y: 1.0)
    gradient.frame = bounds
    mainImage.layer.insertSublayer(gradient, at: 0)

我在 iPhoneSE(模拟器)和 iPod(真实设备)上有不同的结果...任何其他设备,iPhoneX(真实设备)和 iPhone8(模拟器)预期工作广告。

底部的渐变叠加不同。还有其他人遇到过这个问题吗?

我认为这取决于何时创建图层并将其插入到子图层层次结构中。您可以尝试在 viewWillAppear 上更新其框架(如果您可以从视图控制器访问该层)或类似的吗?

像这样的图层在更改时应始终遵循父视图的边界。