FFCircularProgressView - An iOS 7-inspired blue circular progress view

Overview

FFCircularProgressView Build Status

FFCircularProgressView - An iOS 7-inspired blue circular progress view

ss1 ss2 ss3 ss4

This progress view is inspired by the new progress view in the App Store, iOS 7. Also the colors are taken from there.

See it in action

sample

Requirements

FFCircularProgressView works on iOS version > 5 and is compatible with both ARC and non-ARC projects. It depends on the following Apple frameworks, which should already be included with most Xcode templates:

  • Foundation.framework
  • UIKit.framework
  • CoreGraphics.framework
  • QuartzCore.framework

You will need LLVM 3.0 or later in order to build FFCircularProgressView.

Adding FFCircularProgressView to your project

There are plenty of ways to add this view to your project. Make sure you add the aforementioned frameworks to your project as well.

GIT submodule

You have the canonical git submodule option. Simply issue git submodule add https://github.com/elbryan/FFCircularProgressView.git <path> in your root folder of your repository.

CocoaPods

  1. Add a pod entry to your Podfile dependencies file such as pod 'FFCircularProgressView', '>= 0.1'.
  2. Install the pod(s) by running pod install.
  3. Import the progress view with `#import "FFCircularProgressView.h" wherever you need in your project.

Source files

Manually add the source files to your project. The files you need are 'FFCircularProgressView.h', 'FFCircularProgressView.m', 'UIColor+iOS7.h', 'UIColor+iOS7.m'.

Usage

Just use it as it is a normal UIProgressView. Make sure you set the progress value in the main thread ;)

double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0), ^{
        for (float i=0; i<1.1; i+=0.01F) {
            dispatch_async(dispatch_get_main_queue(), ^{
                [circularProgressView setProgress:i];
            });
            usleep(10000);
        }            
    });
});

You can also control the progress view spin animation by using the following two methods to start and stop the spinning, respectively:

// Start spinning
[circularProgressView startSpinProgressBackgroundLayer];

// Stop spinning
[circularProgressView stopSpinProgressBackgroundLayer];

Acknowledgments

The code to draw the tick has been adapted from GSProgressView.

License

This code is distributed under the terms and conditions of the MIT license.

Attributions

I do not demand to be mentioned in your apps nor to receive any kind of compensation if you use this code. Yet, I would like to have feedbacks if you use it and you like it.

Follow me on Twitter: @elbryanlos

Third Party Bindings

Android

Are you an Android developer and you love this progress view? No problem! A couple of folks ported it to Android OS and you can get it here.

React Native

You may now use this library with React Native via the module here

Thank you guys!

Comments
  • Update CocoaPods

    Update CocoaPods

    When are you likely to update the version of FFCircularProgressView on CocoaPods? Would prefer to use this for managing my dependencies but I also need the new ability to override the iconView property.

    opened by OiNutter 3
  • Added Support for React Native Projects

    Added Support for React Native Projects

    Hi @elbryan

    First of all I would like to appreciate for creating such a nice, cool library

    I have created a React Native bridge plugin for using this library with React Native projects

    I have added the same in README. Can you please merge this request so that if someone is looking to use this library for React Native projects can easily do the same

    Please let me know in case any changes are required

    react-native-download-button

    Thanks Pranav

    opened by prscX 1
  • Weird issues using multiple ones in collection view

    Weird issues using multiple ones in collection view

    I am using your very nice looking view in my project, a single one in each cell in my collection view. When I have some in progress 100% state and some downloading (1-99%), some of the completed ones are filled blue but lack the check mark (tick).

    I have no clue about Core Animation, but I would gladly try to isolate this as a test project if that helps.

    opened by mxey 1
  • Added ability to add UIView or UIBezierPath as a placeholder before prog...

    Added ability to add UIView or UIBezierPath as a placeholder before prog...

    ...ress starts.

    The default arrow bezier path in control is not always the desired icon. This adds the ability to render an UIView or UIBezierPath if set. Otherwise the default arrow is rendered in it’s place.

    opened by Legoless 0
  • Indeterminate Mode

    Indeterminate Mode

    I would like an option to use this control in indeterminate mode. A ring spins around but does not actually show progress. This could be our UIActivityIndicator replacement. MBProgressHUD support both determinate and indeterminate modes which is nice.

    Food for thought!

    opened by objectiveSee 0
  • tableview scroll slow

    tableview scroll slow

    using FFCircularProgressView makes table view slow on ipad we show about 18 instances of FFCircularProgressView and scrolling is slow

    any ideas how to speed up?

    opened by lukasa1993 3
Owner
Fabiano Francesconi
Fabiano Francesconi
Material Linear Progress Bar for your iOS apps

LinearProgressBar Material Linear Progress Bar for your iOS apps Installation Carthage: github "Recouse/LinearProgressBar" CocoaPods: Add this to you

Firdavs Khaydarov 161 Dec 5, 2022
Completely customizable progress based loaders drawn using custom CGPaths written in Swift

FillableLoaders Completely customizable progress based loaders drawn using custom CGPaths written in Swift Waves Plain Spike Rounded Demo: Changelog:

Pol Quintana 2.1k Dec 31, 2022
UIProgressView replacement with an highly and fully customizable animated progress bar in pure Core Graphics

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

Yannick Loriot 1.3k Jan 5, 2023
A simple animated progress bar in Swift

DSGradientProgressView Introduction DSGradientProgressView is a simple and customizable animated progress bar written in Swift. Inspired by GradientPr

Dhol Studio 445 Oct 13, 2022
πŸ“Š A customizable gradient progress bar (UIProgressView).

GradientProgressBar A customizable gradient progress bar (UIProgressView). Inspired by iOS 7 Progress Bar from Codepen. Example To run the example pro

Felix M. 490 Dec 16, 2022
Simple and powerful animated progress bar with dots

Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements iOS 8.0+ Swift 3.0+ Installatio

Nikola Corlija 42 Dec 5, 2022
πŸ’ˆ Retro looking progress bar straight from the 90s

Description Do you miss the 90s? We know you do. Dial-up internet, flickering screens, brightly colored websites and, of course, this annoyingly slow

HyperRedink 18 Nov 24, 2022
Simple Swift Progress HUD

MKProgress An iOS Simple Swift Progress HUD Requirements iOS 9.0+ Swift 3.0+ Xcode 8.0+ Installation MKProgress is only available via CocoaPods: pod '

Muhammad Kamran 143 Dec 23, 2022
A clean and lightweight progress HUD based on SVProgressHUD, converted to Swift with the help of Swiftify.

IHProgressHUD IHProgressHUD is a clean and easy-to-use HUD meant to display the progress of an ongoing task on iOS and tvOS. IHProgressHUD is based on

Swiftify 202 Dec 22, 2022
A view class for iOS that makes uploading easy and beautiful.

SVUploader A view class for iOS that makes uploading easy and beautiful. Demo SVUploader is fully customizable - check out 2 demos. Installation Just

Kiran 79 Apr 18, 2022
This is a beauful hud view for iPhone & iPad

WSProgressHUD This is a beauful hud view for iPhone & iPad Usage To Download the project. Run the WSProgressHUD.xcodeproj in the demo directory. [

Wilson 583 Dec 6, 2022
Windless makes it easy to implement invisible layout loading view.

Windless Windless makes it easy to implement invisible layout loading view. Contents Requirements Installation Usage Looks Credits Communication Licen

ArLupin 940 Dec 22, 2022
Show pleasant loading view for your users 😍

RHPlaceholder ?? Because traditional loading view like UIActivityIndicatorView or similar one are no longer so trendy (Facebook or Instagram apps are

Robert Herdzik 238 Nov 2, 2022
A beautiful activity indicator and modal alert written in Swift (originally developed for my app DoodleDoodle) Using blur effects, translucency, flat and bold design - all iOS 8 latest and greatest

SwiftSpinner SwiftSpinner is an extra beautiful activity indicator with plain and bold style. It uses dynamic blur and translucency to overlay the cur

Marin Todorov 2.1k Dec 19, 2022
The easiest way to handle a simple full screen activity indicator in iOS. Written in Swift.

LLSpinner An easy way to handle full screen activity indicator. Easy to use Get Started // Show spinner LLSpinner.spin() // Hide spinner LLSpinner.st

Aleph Retamal 36 Dec 9, 2021
A lightweight and awesome loading Activity Indicator for your iOS app.

BPCircleActivityIndicator BPCircleActivityIndicator is a clean and easy-to-use Activity Indicator meant to display the progress of an ongoing task on

Ben.Park 46 Aug 12, 2022
A simple and awesome loading Activity Indicator(with block moving animation) for your iOS app.

BPBlockActivityIndicator BPBlockActivityIndicator is a clean and easy-to-use Activity Indicator meant to display the progress of an ongoing task on iO

Ben.Park 43 Nov 6, 2021
IOS HUD Swift Library

JHProgressHUD JHProgressHUD is an iOS class written in Swift to display a translucent HUD with an indicator and/or labels while work is being done in

Harikrishnan T 79 Feb 27, 2021
This app is a sample app that recognizes specific voice commands such as "make it red", "make it blue", "make it green", and "make it black" and change the background color of the view in the frame.

VoiceOperationSample This app is a sample app that recognizes specific voice commands such as "make it red", "make it blue", "make it green", and "mak

Takuya Aso 3 Dec 3, 2021
Snake Progress shows circular progress for iOS Apps.

SnakeProgress SnakeProgress shows circular progress for iOS Apps. With SnakeProgress With SnakeProgress, you can easily circular progress. @IBOutlet w

null 8 Sep 22, 2022