Skip to content

Guidebook/gbkui-button-progress-view

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published