YLProgressBar
  • September 25, 2023

The YLProgressBar is an UIProgressView replacement with a highly and fully customizable animated progress bar in pure Core Graphics.

It has been implemented using the Core Graphics framework without any images. So it can be customized freely and independently on the platform.

Usage


Here are some examples to show you how the YLProgressBar can be configured:

// Blue flat progress, with no stripes
_progressBar.type = YLProgressBarTypeFlat;
_progressBar.progressTintColor = [UIColor blueColor];
_progressBar.hideStripes = YES;

// Green rounded/gloss progress, with vertical animated stripes in the left direction
_progressBar.type = YLProgressBarTypeRounded;
_progressBar.progressTintColor = [UIColor greenColor];
_progressBar.stripesOrientation = YLProgressBarStripesOrientationVertical;
_progressBar.stripesDirection = YLProgressBarStripesDirectionLeft;

// Rainbow flat progress, with the indicator text displayed over the progress bar
NSArray *rainbowColors = @[[UIColor colorWithRed:33/255.0f green:180/255.0f blue:162/255.0f alpha:1.0f],
[UIColor colorWithRed:3/255.0f green:137/255.0f blue:166/255.0f alpha:1.0f],
[UIColor colorWithRed:91/255.0f green:63/255.0f blue:150/255.0f alpha:1.0f],
[UIColor colorWithRed:87/255.0f green:26/255.0f blue:70/255.0f alpha:1.0f],
[UIColor colorWithRed:126/255.0f green:26/255.0f blue:36/255.0f alpha:1.0f],
[UIColor colorWithRed:149/255.0f green:37/255.0f blue:36/255.0f alpha:1.0f],
[UIColor colorWithRed:228/255.0f green:69/255.0f blue:39/255.0f alpha:1.0f],
[UIColor colorWithRed:245/255.0f green:166/255.0f blue:35/255.0f alpha:1.0f],
[UIColor colorWithRed:165/255.0f green:202/255.0f blue:60/255.0f alpha:1.0f],
[UIColor colorWithRed:202/255.0f green:217/255.0f blue:54/255.0f alpha:1.0f],
[UIColor colorWithRed:111/255.0f green:188/255.0f blue:84/255.0f alpha:1.0f]];

_progressBar.type = YLProgressBarTypeFlat;
_progressBar.hideStripes = YES;
_progressBar.indicatorTextDisplayMode = YLProgressBarIndicatorTextDisplayModeProgress;
_progressBar.progressTintColors = rainbowColors;

// To allow the gradient colors to fit the progress width
_progressBar.progressStretch = YES;

You can also use the UIAppearence protocol to configure all the progress bars at once:

[[YLProgressBar appearance] setType:YLProgressBarTypeFlat];
[[YLProgressBar appearance] setProgressTintColor:[UIColor blueColor]];

Installation


The recommended approach to use the YLProgressBar in your project is using the CocoaPods package manager, as it provides flexible dependency management and dead simple installation.

CocoaPods

Install CocoaPods if not already available:

$ [sudo] gem install cocoapods
$ pod setup

Go to the directory of your Xcode project, and Create and Edit your Podfile and add YLProgressBar:

$ cd /path/to/MyProject
$ touch Podfile
$ edit Podfile
source ‘https://github.com/CocoaPods/Specs.git’
platform :ios
pod ‘YLProgressBar’, ‘~> 3.11.0’

Install into your project:

$ pod install

Open your project in Xcode from the .xcworkspace file (not the usual project file)

$ open MyProject.xcworkspace

Manually

Download the project and copy the YLProgressBar folder into your project and then simply #import "YLProgressBar.h" in the file(s) you would like to use it in.

GitHub


View Github

#iosanimation #progressindicator
YOU MIGHT ALSO LIKE...
PermissionsSwiftUI: A SwiftUI package to handle permissions

PermissionsSwiftUI displays and handles permissions in SwiftUI. It is largely inspired by SPPermissions. The UI is highly customizable and resembles an Apple style. ...

Pager tab strip view

Introduction PagerTabStripView is the first pager view built in pure SwiftUI. It provides a component to create interactive pager views ...

PageView

SwiftUI view enabling page-based navigation, imitating the behaviour of UIPageViewController in iOS.

Pages

    

How to take action when a property changes

1. Taking Action When a Property Changes: Property Observers Swift lets you observe and respond to changes in a property’s ...