我对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())
答案 0 :(得分:1)
这是可能的解决方案。使用Xcode 11.4 / iOS 13.4进行了测试
ScrollView {
VStack {
Text("Test")
.font(.title)
Text("Another really really long text")
}
.fixedSize()
.opacity(showText)
}