DSGradientProgressView
  • October 2, 2023

Introduction


DSGradientProgressView is a simple and customizable animated progress bar written in Swift.

Inspired by GradientProgressView.

Demo


The gif looks flickery, but the actual animation on device will not be.

Usage


Simply drop a UIView into your View Controller in the Storyboard. Select your view and, in the Identity Inspector, change the class to DSGradientProgressView.

Don’t forget to change the module to DSGradientProgressView too.

Size the view according to your needs. (A 3px height looks great in most cases).

Import DSGradientProgressView in your view controller source file.

import DSGradientProgressView

Create an IBOutlet of the view in your view controller source file.

@IBOutlet weak var progressView: DSGradientProgressView!

Customize

You can change the base color of the progress bar. There are two ways to do this:

  • By setting the barColor property of the view object in your source file.

progressView.barColor = UIColor.green

  • Changing the Bar Color property in Storyboard itself.

Animate

DSGradientProgressView is designed to keep track of the number of requests waiting for completion. Hence the api’s are named after semaphore method names. You call the wait() method of the DSGradientProgressView to start animating and signal() method to stop. It hides and un-hides itself accordingly.

progressView.wait()
// waiting for some resource
progressView.signal()

So, if your View Controller is waiting for more than one network request (or any other resource) and you want the Progress Bar to animate until all the requests are over, you can do that by simply calling wait() that number of times. Later, call signal() the same number of times.

progressView.wait()
// waiting for some resource asynchronously
ResourceOne.sharedInstance.fetchData { (data, error) in
self.progressView.signal()
}

progressView.wait()
// waiting for another resource asynchronously
ResourceTwo.sharedInstance.fetchData { (data, error) in
self.progressView.signal()
}

Installation


CocoaPods (Recommended)

CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

CocoaPods 1.1.0+ is required to build DSGradientProgressView 1.0.0+.

To integrate DSGradientProgressView into your Xcode project using CocoaPods, specify it in your Podfile:

source ‘https://github.com/CocoaPods/Specs.git’
platform :ios, ‘10.0’
use_frameworks!

target ‘<Your Target Name>’ do
pod ‘DSGradientProgressView’
end

Then, run the following command:

$ pod install

Manually

Copy the DSGradientProgressView.swift to your Xcode project. That should do it.

Requirements


  • iOS 8.0+
  • Xcode 10.0+
  • Swift 4.2+

GitHub


View Github

#ios #ioslib #iosui #swift #swift4
YOU MIGHT ALSO LIKE...
EEStackLayout

A vertical stackview which takes subviews with different widths and adds them to it's rows with paddings, spacings etc.

AudioManager

AudioManager is a Swift package that provides a modular and easy-to-use interface for implementing audio feedback in your applications. It ...

CameraBackground

Features Both front and back camera supported. Flash modes: auto, on, off. Countdown timer. Tap to focus. Pinch to zoom. Usage  

DKCamera

Description A light weight & simple & easy camera for iOS by Swift. It uses CoreMotion framework to detect device orientation, so ...