layer.addSublayer 对比 layer.insertSublayer 动画

layer.addSublayer vs layer.insertSublayer animation

我正在为 CAGradient 设置动画

let gradientChangeAnimation = CABasicAnimation(keyPath: "colors")
    gradientChangeAnimation.duration = 5.0
    gradientChangeAnimation.toValue = [
        UIColor(red: 244/255, green: 88/255, blue: 53/255, alpha: 1).cgColor,
        UIColor(red: 196/255, green: 70/255, blue: 107/255, alpha: 1).cgColor
    ]
    gradientChangeAnimation.fillMode = kCAFillModeForwards
    gradientChangeAnimation.isRemovedOnCompletion = false
    gradientLayer.add(gradientChangeAnimation, forKey: "colorChange")

当我使用这种方法将它添加到视图时它工作正常

self.view.layer.addSublayer(gradientLayer)

但是,它现在阻止了我所有的 UI 按钮和图标,所以我尝试将它插入这些项目下面

self.view.layer.insertSublayer(gradientLayer, at: 0)

但是当我这样做时,动画完全停止工作

为什么会这样?

有时我会以自己的愚蠢给自己留下深刻印象。当我在故事板中构建界面时,我有一张渐变的测试图片可以使用。新的动画渐变明显低于测试图片,并且隐藏在视线之外。