Coder Social home page Coder Social logo

sgnavigationprogress's Introduction

SGNavigationProgress

A category for showing a Safari-like progress view on a UINavigationBar SGNavigationProgress SGNavigationProgress With Mask

Installation

Cocoapods: pod 'SGNavigationProgress'

Manual: add UINavigationController+SGProgress.h and UINavigationController+SGProgress.m to your project and import the .h file

Usage

Set Duration

[self.navigationController showSGProgress];	//defaults to 3 seconds
[self.navigationController showSGProgressWithDuration:3];  //uses the navbar tint color
[self.navigationController showSGProgressWithDuration:3 andTintColor:[UIColor blueColor];
[self.navigationController showSGProgressWithDuration:3 andTintColor:[UIColor blueColor] andTitle:@"Sending..."];
[self.navigationController showSGProgressWithMaskAndDuration:3];
[self.navigationController showSGProgressWithMaskAndDuration:3 andTitle:@"Sending..."];

[self.navigationController finishSGProgress]; //finish animation early

Custom Percentage

- (void)setSGProgressPercentage:(float)percentage;
- (void)setSGProgressPercentage:(float)percentage andTitle:(NSString *)title;
- (void)setSGProgressPercentage:(float)percentage andTintColor:(UIColor *)tintColor;
- (void)setSGProgressMaskWithPercentage:(float)percentage;
- (void)setSGProgressMaskWithPercentage:(float)percentage andTitle:(NSString *)title;

[SVHTTPRequest POST:URL parameters:@{} progress:^(float progress) {[self.navigationController setSGProgressPercentage:progress * 100];} completion:^(id response, NSHTTPURLResponse *urlResponse, NSError *error) {}];

License

MIT License

sgnavigationprogress's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sgnavigationprogress's Issues

Height isn't equal to iOS 7 Safari progress bar

The height of the progress bar isn't equal to the iOS 7 Safari. Safari uses 2.5 points height and this project uses just 1 point.

Fixing this is a character-change and not a big deal but it is a big deal when it comes to coherent design / interfaces. People will recognizes it better and know more what it is.
Plus I found it harder to see the bar with just 1 point in height but with 2.5 points you can see it better

Where to place [self.navigationController showSGProgressWithDuration:ellapsedSeconds]; in a UIWebView

Thank you for your sample! I'm leveraging it in my app, but have some questions.

  1. which methods to place [self.navigationController showSGProgressWithDuration:ellapsedSeconds]; - (void)webViewDidFinishLoad:(UIWebView *)webView or - (void)webViewDidStartLoad:(UIWebView *)webView ?
  2. How about ellapsedSeconds, where to place?
NSDate * endDate    = [NSDate date];
ellapsedSeconds     = [endDate timeIntervalSinceDate:startDate];

Thank you!

Cancel option should be added

On the progress in iOS 7 Safari there is also an animation for canceling the current progress. At the moment in this project we just have the option to finish the progress bar.

Finishing a progress bar even on failure can lead to weird expectations. It would be more coherent and a better UX to have a cancel animation like Safari in iOS 7.

The cancel-animation is simple and just fades the current progress bar out of the navigation bar (for a example: open web page in iOS 7 Safari and cancel loading).

What do you think? I can add it and create a pull request.

how to change mask size

Is there any chance to change the mask size (or frame) when showing progress?

Now it looks a full screen mask that stops user interaction available with UI elements (like refresh, cancel...) during download web page

changeSGProgressWithTitle restores the wrong navigation view controller title

if a modal view controller with a title is presented from a main view controller, and then changeSGProgressWithTitle is called on the main view controller, the title of the presented view controller is restored instead of the title of the main controller.

either finishSGProgress or cancelSGProgress will cause that

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.