有时候,在Swift UI中仍受限的ScrollView
中存在任何默认动画,都会导致“复合”动画效果。
ScrollView {
Text("Hello")
.animation(
Animation.interpolatingSpring(stiffness: 200, damping: 3)
)
}
有时offset
被渲染时,会在初始负载上产生更大的弹力效果(相对于ScrollView
)。
有没有一种方法可以将弹簧效果隔离到相对于其自身的偏移而不是其绝对偏移。
有趣的是,如果我将
ScrollView
变成VStack
,则不会发生。似乎ScrollView
在初始渲染时有一些动画。
答案 0 :(得分:0)
好吧,这是绝望者的骇客:
struct Hack: View {
@State var show = false
public var body: some View {
ScrollView {
Text("Hello")
.animation(
Animation.interpolatingSpring(stiffness: 200, damping: 3)
)
.opacity(show ? 1 : 0) // this is the hack
.onAppear { self.show.toggle() }
}
}
}
这将在初始加载时禁用过分的动画(至少就我而言)。这确实不是一个好答案,也不是了解ScrollView
所发生的事情。