返回

SwiftUI 极简教程 11:Path 路径的使用

IOS

从直线开始

最简单的路径是一个直线。你可以使用 addLine(to:) 方法来创建一条从一个点到另一个点的直线。例如,以下代码创建一条从点 (0, 0) 到点 (100, 100) 的直线:

let path = Path { path in
    path.move(to: CGPoint(x: 0, y: 0))
    path.addLine(to: CGPoint(x: 100, y: 100))
}

你可以使用 stroke() 方法来给路径描边,也可以使用 fill() 方法来填充路径。例如,以下代码创建一个红色的、填充的路径:

path.stroke(Color.red, lineWidth: 2)
path.fill(Color.red)

创建形状

路径也可以用来创建形状。你可以使用 addRect() 方法来创建一个矩形,也可以使用 addEllipse() 方法来创建一个椭圆。例如,以下代码创建一个红色的、填充的矩形:

let path = Path { path in
    path.addRect(CGRect(x: 0, y: 0, width: 100, height: 100))
}

path.fill(Color.red)

使用路径创建动画

路径还可以用来创建动画。你可以使用 animate() 方法来让路径随着时间的推移发生变化。例如,以下代码创建一个从点 (0, 0) 到点 (100, 100) 的直线,然后让这条线随着时间的推移消失:

let path = Path { path in
    path.move(to: CGPoint(x: 0, y: 0))
    path.addLine(to: CGPoint(x: 100, y: 100))
}

path.stroke(Color.red, lineWidth: 2)

path.animate(using: .linear(duration: 1)) { path in
    path.opacity = 0
}

使用 Core Graphics 创建更复杂的路径

Core Graphics 是一个低级别的绘图库,它提供了更强大的路径创建功能。你可以使用 Core Graphics 来创建贝塞尔曲线、圆弧和其他复杂的路径。例如,以下代码创建一个红色的、填充的贝塞尔曲线:

let path = UIBezierPath()
path.move(to: CGPoint(x: 0, y: 0))
path.addCurve(to: CGPoint(x: 100, y: 100), controlPoint1: CGPoint(x: 50, y: 0), controlPoint2: CGPoint(x: 50, y: 100))

path.fill(Color.red)

结语

Path 路径是 SwiftUI 中一个非常强大的工具。你可以使用路径来绘制直线、形状、动画和其他复杂的图形。如果你想创建更复杂的路径,你可以使用 Core Graphics。