SwiftUI ScrollView自动添加不需要的动画

时间:2020-05-06 07:21:32

标签: animation swiftui scrollview

我对SwiftUI ScrollView中的动画有问题。我可以使用下面的代码在Playground中重现它。我只想为不透明度设置动画,但它也可以缩放动画。如果我使用VStack而不是ScrollView,它将起作用。但是我需要它可以滚动。

有人遇到过同样的问题,可以给我快速提示吗?

实际行为:https://giphy.com/gifs/h8DSbS1xZ9PJyHIJrY

import SwiftUI
import PlaygroundSupport

struct ContentView: View {

    @State var showText = 0.0
    var body: some View {
        ScrollView {

        Text("Test")
            .font(.title)
            .opacity(showText)
        Text("Another really really long text")
            .opacity(showText)
        }
    .frame(width: 320, height: 420)
    .background(Color.red)
    .onAppear {
        withAnimation(Animation.easeInOut(duration: 1)) {
            self.showText = 1.0
        }
        }
    }
}

PlaygroundPage.current.liveView = UIHostingController(rootView: ContentView())

1 个答案:

答案 0 :(得分:1)

这是可能的解决方案。使用Xcode 11.4 / iOS 13.4进行了测试

ScrollView {
    VStack {
        Text("Test")
            .font(.title)
        Text("Another really really long text")
    }
    .fixedSize()
    .opacity(showText)
}