gbkui-button-progress-view

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

Github stars Tracking Chart

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

Main metrics

Overview
Name With OwnerGuidebook/gbkui-button-progress-view
Primary LanguageObjective-C
Program languageObjective-C (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2015-12-15 19:52:58
Pushed At2016-05-26 22:44:40
Last Commit At2016-05-26 15:44:20
Release Count1
Last Release Name0.1.2 (Posted on )
First Release Name0.1.2 (Posted on )
用户参与
Stargazers Count540
Watchers Count27
Fork Count41
Commits Count30
Has Issues Enabled
Issues Count7
Issue Open Count4
Pull Requests Count3
Pull Requests Open Count1
Pull Requests Close Count1
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private