Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 动画消除SwiftUI视图故障_Ios_Swift_Swiftui - Fatal编程技术网

Ios 动画消除SwiftUI视图故障

Ios 动画消除SwiftUI视图故障,ios,swift,swiftui,Ios,Swift,Swiftui,我想在底部的视图中滑动,以显示一个小便笺,然后在几秒钟后滑出 滑入工作正常,但滑出时会出现故障: if let err = error { ErrorView(err) .animation(.spring()) .transition(.move(edge: .bottom)) .onAppear(perform: errorAppeared) } 当有错误时,它会很好地转换,但当没有错误时

我想在底部的视图中滑动,以显示一个小便笺,然后在几秒钟后滑出

滑入工作正常,但滑出时会出现故障:

   if let err = error {
        ErrorView(err)
            .animation(.spring())
            .transition(.move(edge: .bottom))
            .onAppear(perform: errorAppeared)
    }
当有错误时,它会很好地转换,但当没有错误时,它会从视图中弹出,而不是向下滑动或反转

我调用此函数以清除视图:

private func clearError() {
    withAnimation {
        self.error = nil
    }
}

现有的问题都没有帮助,我试着在“onReceive”功能中做一些事情,关于我能找到的每一个其他答案,大多数人说它应该可以工作,或者使用动画,或者过渡,我相信我已经尝试了大多数组合,在这一点上我被卡住了

我假设动画只是在错误的位置-将其放置在容器保持条件下,并将其链接到从属状态变量,如下所示

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 !!

不知怎么的,还是不为我工作。。我必须设置一个bool或其他可以触发它的东西,并移动我的错误,使其处于未观察到的状态。哦,在另一个测试视图中,我能够使其工作,而无需将其置于视图堆栈之外,我想这可能像是我的链条上的一个顺序,或者说,当请提供可复制的例子时,它有点像是被烘焙成一个api的东西,让我把它变小,我会看看我以后是否能把它删减,对不起,我对它有点失望,需要暂时搁置它以等待进展
private func clearError() {
   self.error = nil
}