A suite containing many tools to display progress information on iOS.

Overview

M13ProgressSuite ================

A set of classes used to display progress information to users on iOS.

Includes:

  • A interchangeable set of progress view of diffrent styles. All the progress views are based on the same superclass, allowing any of them to be switched with any other easily.
  • A progress bar for UINavigationBar that works like Apple's Messages app. It also has the added feature of having an indeterminate style.
  • A HUD overlay that works over any UIView. Uses the M13ProgressView class to allow easy customizablility of the progress view.
  • A progress view that is styled like terminal.
  • Complete documentation of each class.

UINavigationController (M13ProgressViewBar)

Adds a progress bar to the UINavigationController's UINavigationBar. The progress bar is controlled through the UINavigationController.

M13ProgressHUD

A customizable HUD that displays progress, and status information to the user. It uses the M13ProgressView class to allow easy changing of the progress view style.

M13ProgressConsole

A progress view styled like Terminal on OS X.

M13ProgressViews

A set of progess view based off of the same superclass. Allowing easy switching between progress view. Each progress view has success and failure actions, an indeterminate mode, and appearance customization features.

Bar

Bordered Bar

Filtered Image

Image

Pie

Ring

Segmented Bar*

Segmented Ring

Striped Bar

Progress View Usage:

All progress bars follow the same general usage:

// Create the progress view.
M13ProgressViewBar *progressView = [[M13ProgressViewBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 50.0, 5.0)];

// Configure the progress view here.

// Add it to the view.
[self.view addSubview: progressView];

// Update the progress as needed
[progressView setProgress: 0.1 animated: YES];

HUD Usage:

// Create the HUD
M13ProgressHUD *HUD = [[M13ProgressHUD alloc] initWithProgressView:[[M13ProgressViewRing alloc] init]];

// Configure the progress view
HUD.progressViewSize = CGSizeMake(60.0, 60.0);
HUD.animationPoint = CGPointMake([UIScreen mainScreen].bounds.size.width / 2, [UIScreen mainScreen].bounds.size.height / 2);

// Add the HUD to the window. (Or any UIView)
UIWindow *window = ((AppDelegate *)[UIApplication sharedApplication].delegate).window;
[window addSubview:HUD];

// Show the HUD
[HUD show:YES];

//Update the HUD progress
[HUD setProgress:0.5 animated:YES];

// Update the HUD status
HUD.status = @"Processing";

// Hide the HUD
[HUD show:NO];

Contact Me:

If you have any questions comments or suggestions, send me a message. If you find a bug, or want to submit a pull request, let me know.

License:

MIT License

Copyright (c) 2013 Brandon McQuilkin

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Comments
  • getting crash in M13ProgressViewPie.m

    getting crash in M13ProgressViewPie.m

    hello im not sure why but im getting this crash at : [self.displayLink removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes]; not all the time but every few launches of the app

    opened by rotemdoron 16
  • How to add to xCode?

    How to add to xCode?

    I've tried Cocoapods with no luck (message: Repository not found on Github)

    Can I install it manually?How? I want to use it programmatically (no Storyboard).

    Thanks and congratulation for this great job.

    Alex

    opened by alexdec007 13
  • <Error>: CGContextDrawRadialGradient: invalid context 0x0

    : CGContextDrawRadialGradient: invalid context 0x0

    M13ProgressHUD with mask M13ProgressHUDMaskTypeGradient generates the following warning:

    Error: CGContextDrawRadialGradient: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

    Bug M13ProgressSuite 1 
    opened by marcoancona 11
  • M13ProgressViewRing stops spinning

    M13ProgressViewRing stops spinning

    Hello, I am trying to use a the M13ProgressViewRing without showing the percentage, but sometimes the the progress ring isn't spinning, it is just frozen in one spot.

    opened by matthewmoss 9
  • Swift branch useable?

    Swift branch useable?

    Is the Swift branch useable yet? I tried adding it to a project but it's giving me compile errors about "unresolved identifier 'indeterminateUpdate' " I've installed via cocopods pointing to git/swift branch.

    opened by fform 4
  • Problems with ShapeCircle Segmented Bar

    Problems with ShapeCircle Segmented Bar

    I'm having some issues with ShapeCircle Segmented Bar when creating it programmatically. ShapeRectangle and ShapeRoundedRect works fine, but when I change the type to ShapeCircle, segmented bar is not displayed at all.

    I suppose it has something to do with calculating cornerRadius in drawIndeterminate method as if I replace line 439 in M13ProgressViewSegmentedBar.m with cornerRadius = _cornerRadius, it solves the issue. However, I'm not sure about the consequences of that.

    opened by zvonicek 4
  • podspec for 1.1.0?

    podspec for 1.1.0?

    I try to integrate this into my project using cocoapods but I found the latest version on pod is 1.0.1. Just wondering when could the podspec be updated to 1.1.0?

    opened by DJBen 3
  • M13ProgressHUD appearing from top left corner when shown from UITableViewController

    M13ProgressHUD appearing from top left corner when shown from UITableViewController

    I have created a fairly standard setup for an app; a UINavigationController (no custom class) with a UITableViewController as its root controller, displaying a list of items fetched from a server and I want to show a HUD to show the progress.

    This is the code I'm using; it is taken straight from the sample app

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        HUD = [[M13ProgressHUD alloc] initWithProgressView:[[M13ProgressViewRing alloc] init]];
        HUD.progressViewSize = CGSizeMake(60.0, 60.0);
        UIWindow *window = ((LPAppDelegate *)[UIApplication sharedApplication].delegate).window;
        [window addSubview:HUD];
    }
    
    - (void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];
        [HUD show: YES];
    }
    

    The HUD works but instead of "popping" from the middle of the screen it "grows" from the top left angle of the screen to its full size.

    I looked allover the sample project to find differences and the only thing I'm doing different aside from performing this on viewDidAppear is that I'm calling this from a UITableViewController. I tried moving this to a UIViewController and it works perfectly (even with said ViewController being part of a navigation stack) so it seems it is the table view controller's fault

    Any idea why this is happening? I found that editing M13ProgressHUD.m's layoutHUD and moving

        backgroundView.frame = CGRectIntegral(backgroundRect);
        _progressView.frame = CGRectIntegral(progressRect);
    

    outside the UIView animateWithDuration block fixes the issue, but it doesn't look ideal and since it only happens inside the UITableView there must be something else causing it.

    opened by HaikuOezu 3
  • M13ProgressHUD stays visible too long after complete

    M13ProgressHUD stays visible too long after complete

    I have some logic to determine which progress to show, one for 6 and one for 7, as M13ProgressHUD works great with iOS7.

    I am using 'performSelectorOnMainThread' to show the 6 version and it works just fine and disappears promptly when 100% complete. In my app, the updates (10% ... 100%) to these alerts need to run in a thread so the processing is not blocked, so basically a modal alert view, probably basic premise.

    When the iOS 7 device runs with this HUD, all is good until 100%, where the dialog shows for about 7 seconds before disappearing -- way too long. How can I run this without blocking the bg process and shutdown quickly when done, as you do in your demo. The demo, however, is not processing anything so the example is not exactly my use case.

    Thanks !

    opened by pkasson 3
  • M13ProgressViewSegmentedRing - secondary color

    M13ProgressViewSegmentedRing - secondary color

    There's a problem with setting secondaryColor for Segmented Ring. zrzut ekranu 2016-09-18 o 17 18 14 Code used by me: progressView.showPercentage = false progressView.numberOfSegments = 30 progressView.progressRingWidth = 9 progressView.primaryColor = UIColor(white: 1, alpha: 0.4) progressView.secondaryColor = UIColor.whiteColor()

    opened by konradsiemczyk 2
  • hope Give more detail  how to use it

    hope Give more detail how to use it

    I am sorry, I donot know how to use your project . Can you tell more detail about it ?? If you can , I think you project will have more starts. Thanks.

    M13ProgressSuite 1 Documentation 
    opened by oflyme12 2
  • Add support for Swift Package Manager

    Add support for Swift Package Manager

    Hi,

    I developed the support for use this library with Swift Package Manager. Can you merge and generate the tag 1.3.0? The tag must be only numbers for a correct integration with Swift Package Manager.

    Thanks!

    opened by RafaelFernandezAlv 1
  • iOS13 Font system name access

    iOS13 Font system name access

    Since iOS13 you cannot get system font name by string.

    The console outputs a note: CoreText note: Client requested name ".SFUI-Regular", it will get TimesNewRomanPSMT rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[UIFont systemFontOfSize:].

    One use case is into maximumFontSizeThatFitsInRect method of M13ProgressViewBar.m

    textRect = [@"100%" boundingRectWithSize:frame.size options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:@{NSFontAttributeName : [UIFont fontWithName:((__bridge UIFont*)_percentageLabel.font).fontName size:fontSize]} context:nil];
    

    I think it should be changed in [UIFont systemFontOfSize: fontSize]

    opened by fabiosoft 0
  • change segment ring color

    change segment ring color

    I want to change the color segment light gray to white.

    When i am used secondary color it is changing entire part.

    can any one please tell me.

    I need it's urgent.

    (https://user-images.githubusercontent.com/28728191/48615206-3fe39800-e9b6-11e8-8521-551705cab223.png)

    opened by KOSURUUDAYSAIKUMAR 0
Releases(v1.2.9)
Owner
Brandon McQuilkin
Brandon McQuilkin
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
Step-by-step progress view with labels and shapes. A good replacement for UIActivityIndicatorView and UIProgressView.

StepProgressView Step-by-step progress view with labels and shapes. A good replacement for UIActivityIndicatorView and UIProgressView. Usage let progr

Yonat Sharon 340 Dec 16, 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 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 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
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
A suite of IoT tools to use with React Native.

react-native-iot-tools WIP. A suite of IoT tools for React Native applications. Package iOS Android @react-native-iot-tools/bluetooth ✅ ❌ @react-nativ

Sara Pope 3 Oct 31, 2022
ScriptLib - Early and in progress scripting suite for Swift apps

ScriptLib Early and in progress scripting suite for Swift apps. The goal is to c

Jesse Grosjean 13 Sep 24, 2022
PowerfulCombine - A simple suite of Combine helpers

A package with powerful combine extensions. ?? Motivation The Combine framework

JesĂșs Alfredo HernĂĄndez AlarcĂłn 2 Feb 11, 2022
adb-tools-mac is a macOS menu bar app written in SwiftUI for common adb tools.

adb-tools-mac is a macOS menu bar app written in SwiftUI for common adb tools.

Naman Dwivedi 930 Jan 2, 2023
Component containing supplementary content that are anchored to the bottom of the screen.

BottomSheetController UIKit component containing supplementary content that are anchored to the bottom of the screen. Requirements Installation Swift

Naruki Chigira 37 Nov 15, 2022