我有以下情况:
![](https://istack.dev59.com/ZvE4G.gif)
我想使用自定义动画翻转此形状。我不知道如何准确描述它。
每次我点击箭头时,它应该变换成另一个箭头。不需要翻转、旋转等,只需简单的变换即可。
如果这不够精确,请随意评论!
演示代码
struct ContentView: View {
@State private var change = false
private let arrowWidth: CGFloat = 80
var body: some View {
Path { path in
path.move(to: .zero)
path.addLine(to: CGPoint(x: arrowWidth/2, y: change ? -20 : 20))
path.move(to: CGPoint(x: arrowWidth/2, y: change ? -20 : 20))
path.addLine(to: CGPoint(x: arrowWidth, y: 0))
}
.stroke(style: StrokeStyle(lineWidth: 12, lineCap: .round))
.frame(width: arrowWidth)
.foregroundColor(.green)
.animation(.default)
.onTapGesture { change.toggle() }
.padding(.top, 300)
}
}
你现在可以看到它没有动画。我不知道该如何做。
任何帮助都将不胜感激。谢谢!
注意:我不能用两个圆角矩形+简单旋转来做这件事,因为我有一个透明度动画,这会使重叠可见。
animatableData
。您可以在https://swiftui-lab.com/category/animations找到详细的好文章。 - Asperi