PathBuilder logo

PathBuilder(路径构建器)

Path builder 是一个完整的 result builder,用于将 Path 提升到声明式的 SwiftUI 世界。这个 @resultBuilder 可以用于优雅且简洁地定义路径。SwiftUI 中缺失的文档空白通过使用古老但优秀的 CGMutablePath 知识来填补。

动机

我只是想学习如何实现 result builders。在 SwiftUI 中玩动画路径时,我找到了一个完美的实验场所。

用法

示例

使用 PathBuilder,你可以这样写来绘制一个三角形

Path {
    Move(to: CGPoint(x: 50, y: 50))
    Line(to: CGPoint(x: 100, y: 100))
    Line(to: CGPoint(x: 0, y: 100))
    Close()
}

而不是更长的版本

Path { p in
    p.move(to: CGPoint(x: 50, y: 50))
    p.addLine(to: CGPoint(x: 100, y: 100))
    p.addLine(to: CGPoint(x: 0, y: 100))
    p.closeSubpath()
}

绘制 Swift Logo 可以像 这样 实现。

Swift logo path drawing using PathBuilder

路径组件

这里有很多基本的路径组件。你可以通过遵循 PathComponent 协议来创建一个新的组件。

基本组件

分组组件

要求

对于 Swift 5.1 到 5.3,请使用包版本 1.1.1。

否则,对于 2.0+ 版本,请使用最新的工具

安装

在 Xcode 中使用 Swift Package Manager 或添加到你的 Package manifest 文件中。

贡献

欢迎所有贡献。

项目由 Matěj Kašpar Jirásek 创建。

项目根据 MIT 许可证 授权。