Swift 你能在“消失”上设置快捷界面视图的动画吗?
我有一个SwiftUISwift 你能在“消失”上设置快捷界面视图的动画吗?,swift,swiftui,Swift,Swiftui,我有一个SwiftUI视图,它有一个自定义动画,在屏幕上运行。我正试图让视图也成为onDisappear的动画,但它马上就消失了 下面的示例再现了这个问题-MyText视图应从左侧滑入,从右侧滑出。id修改器用于确保每次值更改时都渲染一个新视图,我已确认每次确实调用了onAppear和onDisappear,但动画onDisappear从未明显运行。我怎样才能做到这一点 结构测量:视图{ @国家私有变量id=0 var body:一些观点{ VStack{ MyText(文本:“\(id)”).
视图
,它有一个自定义动画,在屏幕上运行。我正试图让视图也成为onDisappear
的动画,但它马上就消失了
下面的示例再现了这个问题-MyText
视图应从左侧滑入,从右侧滑出。id
修改器用于确保每次值更改时都渲染一个新视图,我已确认每次确实调用了onAppear
和onDisappear
,但动画onDisappear
从未明显运行。我怎样才能做到这一点
结构测量:视图{
@国家私有变量id=0
var body:一些观点{
VStack{
MyText(文本:“\(id)”).id(id)
按钮(“增量”){
self.id+=1
}
}
}
结构MyText:视图{
@国家私有风险值偏移量:CGFloat=-100
让文本:字符串
var body:一些观点{
返回文本(文本)
.偏移量(x:偏移量)
.onAppear(){
带动画(.easeInOut(持续时间:2)){
self.offset=0
}
}
.onDisappear(){
带动画(.easeInOut(持续时间:2)){
自偏移=100
}
}
}
}
}
您可能想要转换,比如
恐怕它无法工作,因为一旦视图被隐藏,就会调用.onDisappear修改器。 然而,这里有一个很好的答案:
干得好!:)然而,关于这个问题,严格地说,这太糟糕了。2021年,SwiftUI仍然无法在本机上提供这一功能。作为后续问题。。。在子视图中使用绑定的好处是什么?这两种方法似乎都有效。
struct Survey: View {
@State private var id = 0
var body: some View {
VStack {
MyText(text: $id)
Button("Increment") {
self.id += 1
}
}
}
struct MyText: View {
@Binding var text: Int
var body: some View {
return Text("\(text)").id(text)
.frame(maxWidth: .infinity)
.transition(.slide)
.animation(.easeInOut(duration: 2))
}
}
}