Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Guidebook/gbkui-button-progress-view
Inspired by Apple’s download progress buttons in the app store
https://github.com/Guidebook/gbkui-button-progress-view
Last synced: about 1 month ago
JSON representation
Inspired by Apple’s download progress buttons in the app store
- Host: GitHub
- URL: https://github.com/Guidebook/gbkui-button-progress-view
- Owner: Guidebook
- License: mit
- Created: 2015-12-15T19:52:58.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2016-05-26T22:44:40.000Z (over 8 years ago)
- Last Synced: 2024-08-16T04:31:20.907Z (5 months ago)
- Language: Objective-C
- Size: 34.2 KB
- Stars: 541
- Watchers: 28
- Forks: 41
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - gbkui-button-progress-view - Inspired by Apple’s download progress buttons in the App Store. (UI / Button)
- awesome-ios-star - gbkui-button-progress-view - Inspired by Apple’s download progress buttons in the App Store. (UI / Button)
README
# GBKUIButtonProgressView
Inspired by Apple’s download progress buttons in the app storeCreated by [@pklada](https://twitter.com/pklada) and [@miketsprague](https://twitter.com/miketsprague)
[Checkout the blog post.](http://engineering.guidebook.com/2015/12/15/guidebooks-progress-button-open-sourced/)
![gif](http://petelada.com/images/plada-loading-button.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](https://s3.amazonaws.com/f.cl.ly/items/3r3i1I383h1l1f2f3314/Image%202015-12-15%20at%204.48.08%20PM.png?v=aa7b2b4a)
```objc
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:
```objc
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