当我滚动UIScrollView时,我试图动画UIView的不透明度。为此,我设置了一个关键帧动画(使用以下代码)并在scrollView滚动时更改其timeOffset值。
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
中设置。
这实际上很好用除了我在headerInfoView中有一个imageView子节点,并且出于某种原因,当timeOffset< ~0.1,imageView的alpha约为0.如果我注释掉上面的代码,则imageView的alpha保持不变。
我已经尝试等到imageView.image获取回调以附加上面的CAKeyframeAnimation并且也无效。
关于为什么这些imageView子图层似乎在viewWillAppear
上消失了?