Code
Spiral – A SwiftUI shape for macOS, iOS and watchOS

A spiral is a component that includes a point generator, Shape
and View
of the spiral. The point generator allows direct data to be used for particularly rare cases. The Shape
and View
of the spiral is designed for SwiftUI. The Spiral
shape can be outlined or filled with the desired material. The `SpiralView’ allows you to place arbitrary views at spiral points.
Spiral usage
Spiral Shape
It has several parameters:
pathType
: the type of path you want to draw.startAt
: the start angle of a spiral.endAt
: the end angle of a spiral.smoothness
: the point density which describes a spiral.offsetRadius
: spiral radius offset for each point with respect to the calculated angle and frame.offsetAngle
: angle offset of each spiral point with respect to the calculated angle and frame.
var body: some View {
Spiral(
startAt: .degrees(90),
endAt: .degrees(360)
)
.stroke(
Color.blue,
style: .init(lineWidth: 20, lineCap: .round, lineJoin: .round)
)
}
Spiral View
When usingSpiralView
, you need to position the content based on the spiral point coordinates.
var body: some View {
SpiralView(
startAt: .degrees(90),
endAt: .degrees(360)
) { index, spiralPoint in
Text("Hello")
.position(x: spiralPoint.point.x, y: spiralPoint.point.y)
}
}
