Popularity
5.6
Stable
Activity
0.0
Stable
542
28
41

Code Quality Rank: L5
Programming language: Objective-C
License: MIT License
Tags: UI     Button    
Latest version: v0.1.2

gbkui-button-progress-view alternatives and similar libraries

Based on the "Button" category.
Alternatively, view gbkui-button-progress-view alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of gbkui-button-progress-view or a related project?

Add another 'Button' Library

README

GBKUIButtonProgressView

Inspired by Apple’s download progress buttons in the app store

Created by @pklada and @miketsprague

Checkout the blog post.

gif

Installation

Cocoapods

pod 'GBKUIButtonProgressView', git: 'https://github.com/Guidebook/gbkui-button-progress-view'

Manually add to your project

Just add the files in GBKUIButtonProgressView/ to your project

Usage

  • Create the button as a custom view in your xib, or create it programatically
  • Make sure that you don't have a constraint for its width (it shrinks)--you might need to set the Intrinsic Content Size to "Placeholder" in your xib to avoid errors

intrinsic content size

self.downloadButton.initialTitle = @"Download";
self.downloadButton.completeTitle = @"Open";

// Add a target (like a regular button)
[self.downloadButton addTarget:self action:@selector(downloadButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

-(void)downloadButtonPressed:(id)sender {
    // Update the button's state based on your downloading item's state
    if(!self.isDownloading && !self.isDownloaded) {
        [self.downloadButton startProgressing];
        [self downloadItem];
    } else if(self.isDownloaded) {
        [self openItem];
    } else {
        [self cancelDownloadingItem];
        [self.downloadButton setProgress:0 animated:YES withCompletion:^{
            [self.downloadButton reset];
        }];
    }
}

-(void)downloadProgressed:(CGFloat)progress {
  // Update the download button's progress when you get a progress update from your item
  [self.downloadButton setProgress:progress animated:YES];
}

To change the tint color, simply:

self.downloadButton.tintColor = [UIColor redColor];

See the example for more info.

Todos

  • Polish the API a bit
  • Allow it to be IBDesignable
  • Inherit from UIControl instead of UIView