SVProgressHUD is a clean and easy-to-use HUD meant to display the progress of an ongoing task.
Add pod 'SVProgressHUD' to your Podfile or pod 'SVProgressHUD', :head if you're feeling adventurous.
Important note if your project doesn't use ARC: you must add the -fobjc-arc compiler flag to SVProgressHUD.m in Target Settings > Build Phases > Compile Sources.
- Drag the
SVProgressHUD/SVProgressHUDfolder into your project. - Add the QuartzCore framework to your project.
(see sample Xcode project in /Demo)
SVProgressHUD is created as a singleton (i.e. it doesn't need to be explicitly allocated and instantiated; you directly call [SVProgressHUD method]).
You can show the status of indeterminate tasks using:
+ (void)show;
+ (void)showWithMaskType:(SVProgressHUDMaskType)maskType;
+ (void)showWithStatus:(NSString*)string;
+ (void)showWithStatus:(NSString*)string maskType:(SVProgressHUDMaskType)maskType;If you'd like the HUD to reflect the progress of a task, use:
+ (void)showProgress:(CGFloat)progress;
+ (void)showProgress:(CGFloat)progress status:(NSString*)status;
+ (void)showProgress:(CGFloat)progress status:(NSString*)status maskType:(SVProgressHUDMaskType)maskType;You can optionally disable user interactions while the HUD is shown using the maskType property:
enum {
SVProgressHUDMaskTypeNone = 1, // allow user interactions, don't dim background UI (default)
SVProgressHUDMaskTypeClear, // disable user interactions, don't dim background UI
SVProgressHUDMaskTypeBlack, // disable user interactions, dim background UI with 50% translucent black
SVProgressHUDMaskTypeGradient // disable user interactions, dim background UI with translucent radial gradient (a-la-alertView)
};It can be dismissed right away using:
+ (void)dismiss;If you'd like to stack HUDs, you can balance out every show call using:
+ (void)popActivity;The HUD will get dismissed once the popActivity calls will match the number of show calls.
Or show a confirmation glyph before before getting dismissed 1 second later using:
+ (void)showSuccessWithStatus:(NSString*)string;
+ (void)showErrorWithStatus:(NSString *)string;
+ (void)showImage:(UIImage*)image status:(NSString*)string; // use 28x28 white pngsSVProgressHUD posts four notifications via NSNotificationCenter in response to being shown/dismissed:
SVProgressHUDWillAppearNotificationwhen the show animation startsSVProgressHUDDidAppearNotificationwhen the show animation completesSVProgressHUDWillDisappearNotificationwhen the dismiss animation startsSVProgressHUDDidDisappearNotificationwhen the dismiss animation completes
Each notification passes a userInfo dictionary holding the HUD's status string (if any), retrievable via SVProgressHUDStatusUserInfoKey.
SVProgressHUD also posts SVProgressHUDDidReceiveTouchEventNotification when users touch on the screen. For this notification userInfo is not passed but the object parameter contains the UIEvent that related to the touch.
SVProgressHUD is brought to you by Sam Vermette and contributors to the project. The success and error icons are from Glyphish. If you have feature suggestions or bug reports, feel free to help out by sending pull requests or by creating new issues. If you're using SVProgressHUD in your project, attribution would be nice.

