在 SwiftUI 中,.trim() 修饰符用于修改形状或路径的绘制方式,限制路径的可见部分。它通常与 Shapes 或 Path 视图一起使用,用于制作动画、进度指示器或突出显示路径的某部分。
语法:
path.trim(from: startFraction, to: endFraction)
startFraction:起始位置的百分比,范围是 0.0 到 1.0,表示路径的开始部分。
endFraction:结束位置的百分比,范围是 0.0 到 1.0,表示路径的结束部分。
示例:
假设绘制一个圆弧,并使用 .trim() 来控制其显示的部分:
struct ContentView: View {
@State private var trimAmount: CGFloat = 0.0
var body: some View {
VStack {
// 使用 Path 绘制圆形,并应用 trim()
Circle()
.trim(from: 0, to: trimAmount) // 根据进度值裁剪
.stroke(style: StrokeStyle(lineWidth: 10, lineCap: .round))
.foregroundColor(.red)
.rotationEffect(Angle(degrees: -90)) // 使圆圈从顶部开始
.animation(.easeInOut, value: trimAmount)
Slider(value: $trimAmount)
}
.frame(width: 200)
}
}

在这个例子中,.trim(from: 0.0, to: trimAmount) 控制圆弧的显示范围,trimAmount 的值在 0.0 到 1.0 之间,决定了圆弧的显示部分。通过动画,当 trimAmount 从 0.0 变到 1.0 时,圆弧逐渐被填满。
使用场景
进度指示器:可以用 .trim() 来展示某个过程的进度,比如加载进度条。
动画效果:可以通过控制路径的显示部分来创建流畅的动画效果。
部分显示路径:可以用于只显示路径的一部分,或根据需要动态控制路径的呈现。