Unfortunately there’s no good solution to this problem (yet).
However, if you can specify the duration of an Animation
, you can use DispatchQueue.main.asyncAfter
to trigger an action exactly when the animation finishes:
withAnimation(.linear(duration: 0.1)) {
self.someState = newState
}
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
print("Animation finished")
}