我想在底部的视图中滑动,显示一个小便条,然后在几秒钟后滑出。.
滑入效果很好,但是滑出时会出现毛刺:
if let err = error {
ErrorView(err)
.animation(.spring())
.transition(.move(edge: .bottom))
.onAppear(perform: errorAppeared)
}
出现错误时,它可以很好地过渡,但是当没有错误时,它会从视图中弹出,而不是向下滑动或反转。
我正在调用此函数以清除视图:
private func clearError() {
withAnimation {
self.error = nil
}
}
现有的问题都无济于事,我试图在“ onReceive”功能以及我能找到的所有其他答案中做点事情,大多数人说它应该是可行的,或者使用动画或过渡,我相信我已经尝试了大多数组合,但此时仍然很困难
答案 0 :(得分:1)
我认为动画位于错误的位置-将其置于容器保存状态,并将其链接到依存状态变量,如下所示
<add name="ConsoleDBContext"
connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=CodeFirst_Demo;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
然后按常规方式激活
VStack { // << can be as-is, only for condition
if let err = error {
ErrorView(err)
.transition(.move(edge: .bottom))
.onAppear(perform: errorAppeared)
}
}
.animation(.spring(), value: error) // << here !!