SwiftUI 中的动画绑定
Posted
技术标签:
【中文标题】SwiftUI 中的动画绑定【英文标题】:Animating Bindings in SwiftUI 【发布时间】:2020-09-11 12:00:36 【问题描述】:我有以下代码根据Binding<Bool>
部分显示或隐藏Test
视图。我可以将testVisible.toggle()
调用包装在withAnimation
中,但是,理想情况下,我想确保visible
绑定始终是动画的,即使在没有withAnimation
的情况下调用也是如此。如何确保每当visible
绑定发生变化时,变化是动画的?
struct ContentView: View
@State var testVisible: Bool = true
var body: some View
ZStack
Color.white
.onTapGesture
testVisible.toggle()
Test(visible: $testVisible)
struct Test: View
@Binding var visible: Bool
var body: some View
Text("Test")
.opacity(visible ? 0.5 : 0)
【问题讨论】:
【参考方案1】:将.animation()
修饰符添加到Text
视图:
struct Test: View
@Binding var visible: Bool
var body: some View
Text("Test")
.opacity(visible ? 0.5 : 0)
.animation(.linear(duration: 0.5))
【讨论】:
以上是关于SwiftUI 中的动画绑定的主要内容,如果未能解决你的问题,请参考以下文章
如果操作未立即完成,则 SwiftUI 视图在绑定到 @Published var 时没有动画