【发布时间】:2021-08-14 00:31:45
【问题描述】:
我有一个矩形视图,当位置状态发生变化时,我会为该位置设置动画。这会隐式地从原始点动画到新的状态值。
@State var position: (Double, Double)
GeometryReader { geo in
Rectangle()
.fill(Color.red)
.frame(width: 200, height: 200)
.position(x: geo.size.width * CGFloat(position.0), y: geo.size.height * CGFloat(position.1))
}
如何在每次位置状态更改时从特定位置设置动画。例如,我想从 (0.5, 0.5) 而不是原始位置动画到新位置状态。这将使视图出现在 (0.5, 0.5) 位置,然后动画到新的位置状态。
这是默认动画
这是我要应用的动画
【问题讨论】:
-
你不能把你已经拥有的位置改为你想要的初始值,然后用动画块来改变它吗?你有预期结果的 gif 图像吗?
position = (1,1); withAnimation { position = (0.1,0.1) }老实说,这似乎是一个简陋的动画,但我可以看到一些用途。 -
@Gry 我添加了一些显示默认和预期动画的 gif
标签: swift xcode swiftui swiftui-animation