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

Posted

技术标签:

【中文标题】使用未解析的标识符“kCAFillModeForwards”【英文标题】:Use of unresolved identifier 'kCAFillModeForwards' 【发布时间】:2018-07-05 12:52:17 【问题描述】:

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

【问题讨论】:

你使用的是什么版本的 Xcode?​​span> 我使用的是 Xcode 版本 10.0 beta 2,Swift 4.2,我为 ios 12 构建了它 【参考方案1】:

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

animation.fillMode = .forwards

也就是说,前向填充模式与动画完成时不移除动画的组合经常被滥用,以试图使动画“粘住”/“保持”。除非您为层的移除设置动画,否则更简洁的解决方案是将层更新为新值并添加动画(在完成时移除)以从先前的值过渡。

【讨论】:

非常感谢!你的答案正是我想要的! 我正在搜索 .forwards 到 Swift 4 的转换并且是 -> kCAFillModeForwards

以上是关于使用未解析的标识符“kCAFillModeForwards”的主要内容,如果未能解决你的问题,请参考以下文章

使用未解析的标识符 'json' (Swift 3) (Alamofire)

使用未声明的类型“DKAsset”,使用未解析的标识符“DKImagePickerController”?

出现错误:使用未解析的标识符“LinkingObjects”

使用未解析的标识符 countElements [重复]

SDKApplicationDelegate 使用未解析的标识符

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