SwiftUI withAnimation 完成回调

2024-05-04

我有一个基于某种状态的 swiftUI 动画:

withAnimation(.linear(duration: 0.1)) {
    self.someState = newState
}

上述动画完成时是否会触发任何回调?

如果有关于如何在 SwiftUI 中使用完成块完成动画的任何建议,但这些建议不是withAnimation,我也对这些持开放态度。

我想知道动画何时完成,以便我可以做其他事情,出于本示例的目的,我只想在动画完成时打印到控制台。


不幸的是,这个问题还没有好的解决方案。

但是,如果您可以指定持续时间Animation, 您可以使用DispatchQueue.main.asyncAfter在动画结束时触发动作:

withAnimation(.linear(duration: 0.1)) {
    self.someState = newState
}

DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
    print("Animation finished")
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SwiftUI withAnimation 完成回调 的相关文章

随机推荐