Непрозрачность 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
?