使用未解析的标识符“ kCAFillModeForwards”

时间:2018-07-05 12:52:18

标签: swift xcode animation cabasicanimation caanimation

当我尝试设置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)
}

1 个答案:

答案 0 :(得分:7)

已删除该常量,以支持CAMediaTimingFillMode类型的forwards属性。从Swift 4.2开始,相同的内容写为:

animation.fillMode = .forwards

也就是说,前向填充模式与在完成动画时不删除动画的组合经常被误用,试图使动画“变粘” /“保留”。除非您要为移除图层设置动画效果,否则,更干净的解决方案是将图层更新为新值,并添加动画(完成后将其移除)以从先前的值过渡。