Ответ @Asperi устранил проблему, с которой я тоже столкнулся (как всегда, его голос Upvoted).
У меня была проблема, когда я анимировал весь экран, используя приведенное ниже: AnyTransition.asymmetric(insertion: .move(edge: .bottom), removal: .move(edge: .top))
И все подэкраны Text () и Button () также анимированы странным и не таким чудесным способом. Я использовал анимацию (ноль), чтобы исправить проблему, увидев ответ Аспери. Однако проблема заключалась в том, что мои кнопки больше не анимировались при выделении, наряду с другими анимациями, которые я хотел.
Поэтому я добавил новую переменную State для включения и выключения анимации VStack. По умолчанию они отключены, и после того, как представление было анимировано на экране, я включаю их после небольшой задержки:
struct QuestionView: View {@State private var allowAnimations: Bool = false
var body : some View {
VStack(alignment: .leading, spacing: 6.0) {
Text("Some Text")
Button(action: {}, label:Text("A Button")
}
.animation(self.allowAnimations ? .default : nil)
.onAppear() {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.4) {
self.allowAnimations = true
}
}
}
Просто добавьте это для тех, у кого похожая проблема и мне нужно развить превосходный ответ Аспери.