An animatable SwiftUI Polygon Shape with support for mesh rendering.
- 🔗Clone or download this repo and play around with the Demo app.
SwiftUIPolygon aims to provide a primitive
Shape implementation that can be rendered as any n-sided polygon in its regular form -- with support for animating side-count changes in real time. As bonus, you can configure it to render just the face -- or render the inner edges for a "wireframe" effect.
- ☑ Shape animation support for side counts.
- ☑ Mesh Rendering
- ☑ Configurable side counts and rendering modes.
- iOS 13.0+
- iPadOS 13.0+
- macOS 10.15+
- tvOS 13.0+
- watchOS 6.0+
- Xcode 11.3+ (for developing)
Using Xcode, select
Swift Packages ->
Add Package Dependency and enter https://github.com/CypherPoet/SwiftUIPolygon.
Swift Package Manager
SwiftUIPolygon can be used through the Swift Package Manager. You can add it as a dependency in your
let package = Package( //... dependencies: [ .package(url: "https://github.com/CypherPoet/SwiftUIPolygon", from: "0.1.0"), ], //... )
From there, you can
import SwiftUIPolygon wherever you'd like to use it.
Polygon( sides: 8, renderingMode: .wireframe )
The number of sides belonging to the polygon.
This value must be greater than or equal to 1. If a value less than 1 is set, it will be clamped to 1 automatically.
Polygons with 1 or 2 sides will be rendered as a circle.
- default: 3
An enum type of either
- default: face
Stroking and filling the same shape
Polygon(sides: 5) .fill(Color.orange) .overlay( polygonShape .stroke(Color.purple, lineWidth: 8) )
SwiftUIPolygon are most welcome. Check out some of the issue templates for more info.
SwiftUIPolygon is available under the MIT license. See the LICENSE file for more info.