我目前正在处理SwiftUI中的一些加载屏幕,并希望通过简单的路径实现某种图像动画。我已经用路径做了一个简单的形状动画,但我坚持将图像剪裁到它。可能吗?
我只想让我的图像简单地飞过屏幕(具有可配置的路径)。想象笔画有背景颜色,所以我们看不到它。谢谢!
struct loadingPath: Shape {
func path(in rect: CGRect) -> Path {
let path =
Path { path in
path.move(to: CGPoint(x: rect.midX, y: rect.midY))
path.addQuadCurve(to: CGPoint(x: 230, y: 200), control: CGPoint(x: -100, y: 300))
path.addQuadCurve(to: CGPoint(x: 90, y: 400), control: CGPoint(x: 400, y: 130))
path.addLine(to: CGPoint(x: 90, y: 600))
}
return path
}
}
.........
var body: some View {
ZStack {
loadingPath()
.trim(from: 0, to: x)
.stroke(Color.purple)
.frame(width: 200, height: 200)
.onAppear() {
withAnimation(Animation.easeInOut(duration: 3).delay(0.5)) {
self.x = 1
}
}
}