Swiftpack.co - Package - luispadron/UICircularProgressRing

Banner

A circular progress bar for iOS written in Swift

Styles

Features

  • Interface builder designable
  • Highly customizable and flexible
  • Easy to use
  • Fluid and interruptible animations
  • Written in Swift
  • RTL language support

Apps Usig UICircularProgressRing

Installation

CocoaPods (Recommended)

  1. Install CocoaPods

  2. Add this repo to your Podfile

    target 'Example' do
        # IMPORTANT: Make sure use_frameworks! is included at the top of the file
        use_frameworks!
    
        pod 'UICircularProgressRing'
    end
    
  3. Run pod install

  4. Open up the .xcworkspace that CocoaPods created

  5. Done!

Carthage

Important: Interface builder support with Carthage is either broken or extremely limted

To use with Carthage

  1. Make sure Carthage is installed

    brew install carthage

  2. Add this repo to your Cartfile

    github "luispadron/UICircularProgressRing"

  3. Install dependencies carthage update --platform iOS

Usage

Interface Builder

Simply drag a UIView into your storyboard. Make sure to subclass UICircularProgressRing and that the module points to UICircularProgressRing.

Design your heart out

ib-demo.gif

Code

override func viewDidLoad() {
  // Create the view
  let progressRing = UICircularProgressRing(frame: CGRect(x: 0, y: 0, width: 240, height: 240))
  // Change any of the properties you'd like
  progressRing.maxValue = 50
  progressRing.innerRingColor = UIColor.blue
  // etc ...
}

To set a value and animate the view

// Somewhere not in viewDidLoad (since the views have not set yet, thus cannot be animated)
// Remember to use unowned or weak self if refrencing self to avoid retain cycle
progressRing.startProgress(to: 49, duration: 2.0) {
  print("Done animating!")
  // Do anything your heart desires...
}

// Pause at any time during a running animation
progressRing.pauseProgress()

// Continue where you left off after a pause
progressRing.continueProgress()

Documentation

Please read this before creating an issue about how to use the package:

DOCUMENTATION

Example project

Take a look at the example playground over here

  1. Download it
  2. Mess around and experiment!

Misc.

Do you use this library? Want to be featured? Go here.

Github

link
Stars: 830
Help us keep the lights on

Dependencies

Used By

Total: 0

Releases

v4.0.0 - Sep 16, 2018

Version 4.0.0

  • Migrate to Swift 4.2, thanks to @chirs-redbeed for initial migration

v3.3.2 - Aug 24, 2018

Version 3.3.2

  • Add check for value being set greater than maxValue Thanks to @byronsalty for the PR!

v3.3.1 - Aug 22, 2018

Version 3.3.1

  • Fixes more issues with pause/continue progress logic. Thanks to @nickdnk for the PR!

v3.3.0 - Aug 16, 2018

Version 3.3.0

  • Fixes issues with inconsistent API. The pauseProgress() and resetProgress() now work as expected/intended. When calling pauseProgress(), the completion on the startProgress function won't be called until it's actually been completed. When calling resetProgress the completion for startProgress is discarded and will no longer be called, since the ring has not actually completed (same with delegate).

    Thanks a lot to @MileyHollenberg for these fixes!

v3.2.0 - Jul 30, 2018

Version 3.2.0