使用未解析的标识符 'kCAFillModeForwards'

Use of unresolved identifier 'kCAFillModeForwards'

当我尝试设置animation.fillMode = kCAFillModeForwards Xcode时无法编译并显示错误。 “使用未解析的标识符 'kCAFillModeForwards'”

我已经在以前的项目中使用过这个,没有任何问题,有人遇到过这种行为吗?

func animateGradient() {
        currentGradient += 1
        let animation = CABasicAnimation(keyPath: Animation.keyPath)
        animation.duration = animationDuration
        animation.toValue = currentGradientSet()
        animation.fillMode = kCAFillModeForwards
        animation.isRemovedOnCompletion = false
        animation.delegate = self
        gradient.add(animation, forKey: Animation.key)
}

该常量已被删除,取而代之的是 CAMediaTimingFillMode 类型上的 forwards 属性。从 Swift 4.2 开始,同样的事情写成:

animation.fillMode = .forwards

就是说,前向填充模式与动画完成时不移除动画的组合经常被误用于制作动画 "stick"/"remain"。除非您正在为图层的移除设置动画,否则更简洁的解决方案是将图层更新为新值并添加一个动画(完成后将被移除)以从先前的值过渡。