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)
但是当我这样做时,动画完全停止工作
为什么会这样?
有时我会以自己的愚蠢给自己留下深刻印象。当我在故事板中构建界面时,我有一张渐变的测试图片可以使用。新的动画渐变明显低于测试图片,并且隐藏在视线之外。
我正在为 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)
但是当我这样做时,动画完全停止工作
为什么会这样?
有时我会以自己的愚蠢给自己留下深刻印象。当我在故事板中构建界面时,我有一张渐变的测试图片可以使用。新的动画渐变明显低于测试图片,并且隐藏在视线之外。