2 Star 23 Fork 10

小弟调调/swiftui-example

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
README.md 1.45 KB
一键复制 编辑 原始数据 按行查看 历史

如何绘制自定义路径?

SwiftUI 允许我们通过遵循 Shape 协议来绘制自定义路径,因此我们可以创建自己的形状,这些形状的作用与RectangleCapsuleCircle 相同。 遵守此协议并不难,因为您所要做的就是支持一个接受 CGRect 并返回 Pathpath(in:) 方法。 更好的是,您可以使用以前使用 CGPathUIBezierPath 构建的任何路径,然后将结果转换为 SwiftUI 路径。

如果您想使用 SwiftUI 的本机 Path 类型,请为其创建一个变量实例,然后根据需要添加任意数量的点或形状。 不用考虑颜色,填充或笔划宽度-您将注意力集中在原始形状上,使用自定义路径时会提供这些设置。

例如,我们可以通过绘制一系列缩小的正方形,然后将该形状放置到带有笔触和大小的SwiftUI视图中来产生创造性的效果:

struct ShrinkingSquares: Shape {
    func path(in rect: CGRect) -> Path {
        var path = Path()
        for i in stride(from: 1, through: 100, by: 5.0) {
            let rect = CGRect(x: 0, y: 0, width: rect.width, height: rect.height)
            let insetRect = rect.insetBy(dx: CGFloat(i), dy: CGFloat(i))
            path.addRect(insetRect)
        }
        return path
    }
}

struct ContentView: View {
    var body: some View {
        ShrinkingSquares()
            .stroke()
            .frame(width: 200, height: 200)
    }
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Swift
1
https://gitee.com/jaywcjlove/swiftui-example.git
git@gitee.com:jaywcjlove/swiftui-example.git
jaywcjlove
swiftui-example
swiftui-example
main

搜索帮助