ActivityRings is an attempt to recreate the ring controls in Apple’s Activity app.
- Swift 4.2
- iOS 8.0+ / macOS 10.10+ / tvOS 9.0+ / watchOS 4.0+
ActivityRings is available via CocoaPods and Carthage.
To install ActivityRings using CocoaPods, add the following line to your Podfile:
To install ActivityRings using Carthage, add the following line to your Cartfile:
To get started, import
ActivityRings. To display the control, use the
ActivityRingView class on iOS, macOS, and tvOS, and the
ActivityRingScene class on watchOS.
endColor, and the
backgroundRingColor can all be customised.
The progress of the ring can be set with or without animation.
To set the progress without animation, simply update the value of the
To animate the progress, use the
animateProgress method, which accepts two arguments:
- The desired final progress value
- The animation duration
Some notes on performance:
- Since this control was written in SpriteKit, it relies heavily on the GPU, and so will not perform well or accurately in the simulator.
- The initial setup process is somewhat expensive, so animating the progress directly after presenting the view can cause some hiccups. This is being worked on, but in the meantime, delaying the animation by a second or so works around the issue.
Apps Using ActivityRings
Feel free to submit a PR if you’re using this library in your apps.
Written by Harshil Shah. You can find me on Twitter.
The original UIKit implementation was written by Max Konovalov.
ActivityRings is available under the MIT license. See the LICENSE.md file for more info.