Использование неразрешенного идентификатора «kCAFillModeForwards» - PullRequest
0 голосов
/ 05 июля 2018

Когда я пытаюсь установить 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 голосов
/ 05 июля 2018

Эта константа была удалена в пользу свойства forwards для типа CAMediaTimingFillMode. Начиная с Swift 4.2 написано то же самое:

animation.fillMode = .forwards

Тем не менее, комбинация режима прямой заливки и не удаления анимации после ее завершения часто неправильно используется в попытке заставить анимацию «залипать» / «оставаться». Если вы не анимируете удаление слоя, более чистое решение состоит в том, чтобы обновить слой до нового значения и добавить анимацию, которая удаляется после его завершения, для перехода от предыдущего значения.

...