我想为我UIButton
的 's的宽度和 alpha 设置动画titleLabel
。alpha 动画应在 1 秒后开始。
我正在尝试使用核心动画来做到这一点:
let animSize = CAKeyframeAnimation(keyPath: "bounds")
animSize.values = [btn1.layer.frame,CGRect(origin: btn1.layer.frame.origin, size: CGSize(width: 300, height: btn1.layer.frame.height))]
animSize.duration = 3
animSize.isRemovedOnCompletion = false
animSize.fillMode = kCAFillModeForwards
btn1.layer.add(animSize, forKey: "bounds")
let animAlpha = CABasicAnimation(keyPath: "opacity")
animAlpha.fromValue = 0.0
animAlpha.toValue = 1.0
animAlpha.timeOffset = 1.0
animAlpha.isRemovedOnCompletion = false
animAlpha.fillMode = kCAFillModeForwards
btn1.titleLabel?.layer.add(animAlpha, forKey: "opacity")
当我单独运行动画时,一切正常,但是当我一起运行它们时,只有第一个动画(“边界”)正在评估。我知道我可以用UIView.animat
e 做到这一点,但在这种情况下,我将失去“延迟”选项。我也尝试将这些动画放入 aCAAnimationGroup
但没有任何改变。我想同时运行这些动画,因此我不能使用完成块。
谢谢你的任何建议。