2、绘制自定义shape
自定义shape也只是使用Path组件定义好形状,然后包裹成一个Shape就行了。
本章,我们将自定义一个菱形。
Getting ready
首先,创建一个SwiftUI工程:RhombusApp
How to do it…
- 创建菱形
struct Rhombus: Shape {
func path(in rect: CGRect) -> Path {
Path() { path in
path.move(to: CGPoint(x: rect.midX, y: rect.minY))
path.addLine(to: CGPoint(x: rect.minX, y: rect.midY))
path.addLine(to: CGPoint(x: rect.midX, y: rect.maxY))
path.addLine(to: CGPoint(x: rect.maxX, y: rect.midY))
path.closeSubpath()
}
}
}
- 显示出来
var body: some View {
Rhombus()
.fill(.orange)
.aspectRatio(0.7, contentMode: .fit)
.padding(.horizontal, 10)
}
How it works…
要创建自定义shape,你需要实现Shape协议
Shape协议需要实现func path(in rect: CGRect) -> Path
。
我们创建一个Path,在path的闭包中绘制图形。
注意绘制的坐标系的原点在左上角: