如何在swiftui中动画化vstack容器高度的变化?

时间:2020-07-22 06:08:06

标签: ios swift swiftui

屏幕中间有背景和徽标。在加载视图时,它应缩小到手机高度的一半(使徽标居中),并且该表格应显示在屏幕底部的下方-从底部滑动。在尝试为底部形状的偏移量设置动画时,出于某种原因,我最初仍然观察到白色背景,为什么?以及如何克服呢?

   ...

   @State var offset: CGFloat = 1000;
   
   ...

   var body: some View {
        GeometryReader { geometryProxy in
            NavigationView {
                VStack {
                    VStack {
                        ZStack(alignment: .center) {
                            Color.init(red: 255 / 255, green: 222 / 255, blue: 68 / 255)
                                    .edgesIgnoringSafeArea(.all)
                                    Image.init(systemName: "pencil")
                        }
                    }
                    VStack {
                        Text("hello-world")
                        Text("hello-world")
                        Text("hello-world")
                    }
                    .offset(y: self.offset)
                    .onAppear {
                            let baseAnimation = Animation.easeInOut(duration: 1)
                            let repeated = baseAnimation.speed(1)
                            return withAnimation(repeated) {
                                self.offset = 0
                            }
                        }
                }
            }
        }
    }

enter image description here

在屏幕的初始加载上,我看到表单应该放在哪里的白色背景,如何消除它?我也尝试了帧高动画,但是不符合要求。

0 个答案:

没有答案