问题描述
我想以编程方式滚动git pull --all
,并且可以独立地对某些子视图进行动画处理,但是当更改vstack
的偏移量时,动画子视图会随着动画而移动到最终位置,这不是我想要什么以及如何禁用对此位置动画设置动画?
这是我的演示代码,
vstack
和效果,
解决方法
尝试以下方法(在Xcode 12.0.1,iOS14中测试):
设置angle
时使用显式动画调用:
import SwiftUI
struct ContentView: View {
@State var angle:Double = 0
@State var offset = 0
var body: some View {
LazyVStack {
ForEach((0..<100)) { i in
if i == 25 {
Rectangle()
.frame(width: 30,height: 30)
.rotationEffect(.degrees(angle),anchor: .center)
.onAppear {
withAnimation(Animation.linear(duration: 3).repeatForever(autoreverses: false)) {
angle = 360
}
}
} else {
Text("number \(i)")
}
}
}
.offset(y: CGFloat(offset))
.onAppear {
offset = 200
}
}
}