gpt4 book ai didi

ios - 如何同时对 UIButton 的 titleLabel 的框架和 alpha 进行动画处理?

转载 作者:行者123 更新时间:2023-11-30 11:51:28 30 4
gpt4 key购买 nike

我想要为我的 UIButtontitleLabel 的宽度和 alpha 设置动画。 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 来做到这一点,但在这种情况下我将失去“延迟”选项。我还尝试将这些动画放入 CAAnimationGroup 中,但没有任何改变。我想同时运行这些动画,因此无法使用完成 block 。

感谢您的建议。

最佳答案

您不会失去 UIView.animate 的“延迟”选项。您可以使用两个动画 block 来实现相同的结果:

UIView.animate(withDuration: 3) {
btn1.frame = CGRect(origin: btn1.frame.origin, size: CGSize(width: 300, height: btn1.frame.height))
}

UIView.animate(withDuration: 2, delay: 1, options: [], animations: {
btn1.alpha = 1
}, completion: nil)

关于ios - 如何同时对 UIButton 的 titleLabel 的框架和 alpha 进行动画处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48286931/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com