【问题标题】:SwiftUI - Transition Animations not working in GeoReader?SwiftUI - 过渡动画在 GeoReader 中不起作用?
【发布时间】:2020-07-18 20:10:20
【问题描述】:

我有这样的代码:

            VStack{
                if (DeleteScreen.sharedInstance.postDelete){
                    VStack{
                        GeometryReader{_ in
                            DeletePostAlert()
                                .frame(maxWidth: .infinity, alignment: .center)
                                .frame(maxHeight: .infinity, alignment: .center)
                                .transition(AnyTransition.opacity.animation(.easeInOut(duration: 0.2)))
                            
                        }.background(Color.black.opacity(0.65))
                        
                        .onDisappear{

                        }
                        .onAppear{
                            
                            
                            
                        }
                    }
                }
            }

DeletePost 警报的定义如下:

class DeleteScreen: ObservableObject {
    static let sharedInstance = DeleteScreen()
    @Published var postDelete: Bool = false
}

但是,由于某种原因,过渡动画无法正常工作。我试图让 DeletePostAlert() 淡入或滑入或其他东西,但到目前为止我尝试过的一切都没有奏效。我也尝试过类似 .animation(.spring()) 的方法,但无济于事。

任何关于我在这里做错的指导将不胜感激。

谢谢

【问题讨论】:

    标签: ios swift swiftui geometryreader


    【解决方案1】:

    我也有同样的问题。看起来像一个错误。

    一个可能对您有用的解决方案是在GeometryReader 之上设置transition 修饰符。

    VStack {
        if(DeleteScreen.sharedInstance.postDelete) {
            VStack {
                GeometryReader { _ in
                    DeletePostAlert()
                        .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center)
                }
                .transition(AnyTransition.opacity.animation(.easeInOut(duration: 0.2)))
                .background(Color.black.opacity(0.65))
                .onDisappear { ... }
                .onAppear { ... }
            }
        }
    }
    

    顺便说一句:我想知道如果您忽略 GeometryReader 的值,为什么还要使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 2012-04-18
      • 2016-09-22
      • 2018-02-28
      相关资源
      最近更新 更多