Непрозрачность CAKeyframeAnimation ведет себя странно с подуровнями UIImageView

Я пытаюсь анимировать непрозрачность UIView, когда прокручивается UIScrollView. Для этого я настраиваю анимацию ключевого кадра (со следующим кодом) и меняю его значение timeOffset при прокрутке scrollView.

    let alphaAnimation = CAKeyframeAnimation(keyPath: "opacity")
    alphaAnimation.duration = 1.0
    alphaAnimation.isRemovedOnCompletion = false
    alphaAnimation.autoreverses = false
    alphaAnimation.values = [1.0, 0.0]
    alphaAnimation.keyTimes = [0.0, 1.0]
    alphaAnimation.repeatCount = 0
    alphaAnimation.fillMode = kCAFillModeForwards

    headerInfoView.layer.add(alphaAnimation, forKey: "animate opacity")
    headerInfoView.layer.speed = 0.0
    headerInfoView.layer.timeOffset = CFTimeInterval(0.0)
    headerInfoView.layer.opacity = 1.0

Это настраивается в viewWillAppear,

Это на самом деле хорошо работает, за исключением того, что у меня есть дочерний элемент imageView в headerInfoView, и по какой-то причине, когда timeOffset <~ 0.1, альфа imageView составляет приблизительно 0. Если я закомментирую вышеприведенный код, альфа imageView останется прежним.

Я пытался дождаться обратного вызова imageView.image, чтобы прикрепить вышеуказанную CAKeyframeAnimation, и это тоже не работает.

Любые мысли о том, почему эти подслои imageView, кажется, исчезают на viewWillAppear?

0 ответов

Другие вопросы по тегам