GBKUIButtonProgressView
  • November 9, 2023

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

Created by @pklada and @miketsprague

Checkout the blog post.

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


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.

GitHub


View Github

#ios #placeholder #swift #uibutton #uiprogressview
YOU MIGHT ALSO LIKE...
MijickPopups Hero

  Popups Alerts Resizable Sheets Banners

SwiftUI Tooltip

This package provides you with an easy way to show tooltips over any SwiftUI view, since Apple does not provide ...

SimpleToast for SwiftUI

SimpleToast is a simple, lightweight, flexible and easy to use library to show toasts / popup notifications inside iOS or ...

SSToastMessage

Create Toast Views with Minimal Effort in SwiftUI Using SSToastMessage. SSToastMessage enables you to effortlessly add toast notifications, alerts, and ...

ToastUI

A simple way to show toast in SwiftUI   Getting Started • Documentation • Change Log