JGProgressHUD Class Reference

Inherits from UIView
Declared in JGProgressHUD.h
JGProgressHUD.m

Overview

A HUD to indicate progress, success, error, warnings or other notifications to the user.

@c JGProgressHUD respects its @c layoutMargins when positioning the HUD view. Additionally, on iOS 11 if @c insetsLayoutMarginsFromSafeArea is set to @c YES (default) the @c layoutMargins additionally contain the @c safeAreaInsets.

Note: Remember to call every method from the main thread! UIKit => main thread! @attention You may not add JGProgressHUD to a view which has an alpha value < 1.0 or to a view which is a subview of a view with an alpha value < 1.0.

Other Methods

– initWithStyle:

Designated initializer.

- (instancetype)initWithStyle:(JGProgressHUDStyle)style

Parameters

style

The appearance style of the HUD.

Discussion

Designated initializer.

Declared In

JGProgressHUD.h

+ progressHUDWithStyle:

Convenience initializer.

+ (instancetype)progressHUDWithStyle:(JGProgressHUDStyle)style

Parameters

style

The appearance style of the HUD.

Discussion

Convenience initializer.

Declared In

JGProgressHUD.h

– initWithAutomaticStyle

Convenience initializer. The HUD will dynamically change its style based on whether dark mode is enabled or not. When dark mode is on, the style will be JGProgressHUDStyleDark, when dark mode is off the style will be JGProgressHUDStyleExtraLight.

- (instancetype)initWithAutomaticStyle

Discussion

Convenience initializer. The HUD will dynamically change its style based on whether dark mode is enabled or not. When dark mode is on, the style will be JGProgressHUDStyleDark, when dark mode is off the style will be JGProgressHUDStyleExtraLight.

Declared In

JGProgressHUD.h

+ progressHUDWithAutomaticStyle

Convenience initializer. The HUD will dynamically change its style based on whether dark mode is enabled or not. When dark mode is on, the style will be JGProgressHUDStyleDark, when dark mode is off the style will be JGProgressHUDStyleExtraLight.

+ (instancetype)progressHUDWithAutomaticStyle

Discussion

Convenience initializer. The HUD will dynamically change its style based on whether dark mode is enabled or not. When dark mode is on, the style will be JGProgressHUDStyleDark, when dark mode is off the style will be JGProgressHUDStyleExtraLight.

Declared In

JGProgressHUD.h

– showInView:

Shows the HUD animated. You should preferably show the HUD in a UIViewController’s view. The HUD will be repositioned in response to rotation and keyboard show/hide notifications.

- (void)showInView:(UIView *)view

Parameters

view

The view to show the HUD in. The frame of the @c view will be used to calculate the position of the HUD.

Discussion

Shows the HUD animated. You should preferably show the HUD in a UIViewController’s view. The HUD will be repositioned in response to rotation and keyboard show/hide notifications.

Declared In

JGProgressHUD.h

– showInView:animated:

Shows the HUD. You should preferably show the HUD in a UIViewController’s view. The HUD will be repositioned in response to rotation and keyboard show/hide notifications.

- (void)showInView:(UIView *)view animated:(BOOL)animated

Parameters

view

The view to show the HUD in. The frame of the @c view will be used to calculate the position of the HUD.

animated

If the HUD should show with an animation.

Discussion

Shows the HUD. You should preferably show the HUD in a UIViewController’s view. The HUD will be repositioned in response to rotation and keyboard show/hide notifications.

Declared In

JGProgressHUD.h

– showInView:animated:afterDelay:

Shows the HUD after a delay. You should preferably show the HUD in a UIViewController’s view. The HUD will be repositioned in response to rotation and keyboard show/hide notifications. You may call @c dismiss to stop the HUD from appearing before the delay has passed.

- (void)showInView:(UIView *__nonnull)view animated:(BOOL)animated afterDelay:(NSTimeInterval)delay

Parameters

view

The view to show the HUD in. The frame of the @c view will be used to calculate the position of the HUD.

animated

If the HUD should show with an animation.

delay

The delay until the HUD will be shown.

Discussion

Shows the HUD after a delay. You should preferably show the HUD in a UIViewController’s view. The HUD will be repositioned in response to rotation and keyboard show/hide notifications. You may call @c dismiss to stop the HUD from appearing before the delay has passed.

Declared In

JGProgressHUD.h

– dismiss

Dismisses the HUD animated. If the HUD is currently not visible this method does nothing.

- (void)dismiss

Discussion

Dismisses the HUD animated. If the HUD is currently not visible this method does nothing.

Declared In

JGProgressHUD.h

– dismissAnimated:

Dismisses the HUD. If the HUD is currently not visible this method does nothing.

- (void)dismissAnimated:(BOOL)animated

Parameters

animated

If the HUD should dismiss with an animation.

Discussion

Dismisses the HUD. If the HUD is currently not visible this method does nothing.

Declared In

JGProgressHUD.h

– dismissAfterDelay:

Dismisses the HUD animated after a delay. If the HUD is currently not visible this method does nothing.

- (void)dismissAfterDelay:(NSTimeInterval)delay

Parameters

delay

The delay until the HUD will be dismissed.

Discussion

Dismisses the HUD animated after a delay. If the HUD is currently not visible this method does nothing.

Declared In

JGProgressHUD.h

– dismissAfterDelay:animated:

Dismisses the HUD after a delay. If the HUD is currently not visible this method does nothing.

- (void)dismissAfterDelay:(NSTimeInterval)delay animated:(BOOL)animated

Parameters

delay

The delay until the HUD will be dismissed.

animated

If the HUD should dismiss with an animation.

Discussion

Dismisses the HUD after a delay. If the HUD is currently not visible this method does nothing.

Declared In

JGProgressHUD.h

– dismissAfterDelay:animated:completion:

Dismisses the HUD after a delay and runs a block upon completion. If the HUD is currently not visible this method does nothing.

- (void)dismissAfterDelay:(NSTimeInterval)delay animated:(BOOL)animated completion:(void ( ^ _Nullable ) ( void ))dismissCompletion

Parameters

delay

The delay until the HUD will be dismissed.

animated

If the HUD should dismiss with an animation.

dismissCompletion

The block to execute after the HUD was dismissed.

Discussion

Dismisses the HUD after a delay and runs a block upon completion. If the HUD is currently not visible this method does nothing.

Declared In

JGProgressHUD.h

– performAfterDismiss:

Schedules the given block to be executed when this HUD disapears. If the HUD is currently not visible this method does nothing.

- (void)performAfterDismiss:(void ( ^ _Nonnull ) ( void ))dismissCompletion

Parameters

dismissCompletion

The block to execute after the HUD was dismissed. Multiple calls to this method cause the different blocks to be executed in FIFO order.

Discussion

Schedules the given block to be executed when this HUD disapears. If the HUD is currently not visible this method does nothing.

Declared In

JGProgressHUD.h

– contentView

The content view inside the @c HUDView. If you want to add additional views to the HUD you should add them as subview to the @c contentView.

- (UIView *)contentView

Discussion

The content view inside the @c HUDView. If you want to add additional views to the HUD you should add them as subview to the @c contentView.

Declared In

JGProgressHUD.h

– textLabel

The label used to present text on the HUD. Set the @c text or @c attributedText property of this label to change the displayed text. You may not change the label’s @c frame or @c bounds.

- (UILabel *)textLabel

Discussion

The label used to present text on the HUD. Set the @c text or @c attributedText property of this label to change the displayed text. You may not change the label’s @c frame or @c bounds.

Declared In

JGProgressHUD.h

– detailTextLabel

The label used to present detail text on the HUD. Set the @c text or @c attributedText property of this label to change the displayed text. You may not change the label’s @c frame or @c bounds.

- (UILabel *)detailTextLabel

Discussion

The label used to present detail text on the HUD. Set the @c text or @c attributedText property of this label to change the displayed text. You may not change the label’s @c frame or @c bounds.

Declared In

JGProgressHUD.h

– animation

The animation used for showing and dismissing the HUD. @b Default: JGProgressHUDFadeAnimation.

- (JGProgressHUDAnimation *)animation

Discussion

The animation used for showing and dismissing the HUD. @b Default: JGProgressHUDFadeAnimation.

Declared In

JGProgressHUD.h

– setProgress:animated:

Adjusts the current progress shown by the receiver, optionally animating the change.

- (void)setProgress:(float)progress animated:(BOOL)animated

Parameters

progress

The new progress value.

animated

YES if the change should be animated, NO if the change should happen immediately.

Discussion

Adjusts the current progress shown by the receiver, optionally animating the change.

The current progress is represented by a floating-point value between 0.0 and 1.0, inclusive, where 1.0 indicates the completion of the task. The default value is 0.0. Values less than 0.0 and greater than 1.0 are pinned to those limits.

Declared In

JGProgressHUD.h

Other Methods

  style

The appearance style of the HUD. @b Default: JGProgressHUDStyleExtraLight.

@property (nonatomic, assign) JGProgressHUDStyle style

Discussion

The appearance style of the HUD. @b Default: JGProgressHUDStyleExtraLight.

Declared In

JGProgressHUD.h

  targetView

The view in which the HUD is presented.

@property (nonatomic, weak, readonly, nullable) UIView *targetView

Discussion

The view in which the HUD is presented.

Declared In

JGProgressHUD.h

  delegate

The delegate of the HUD.

@property (nonatomic, weak, nullable) id<JGProgressHUDDelegate> delegate

Discussion

The delegate of the HUD.

Declared In

JGProgressHUD.h

  HUDView

The actual HUD view visible on screen. You may add animations to this view.

@property (nonatomic, strong, readonly, nonnull) UIView *HUDView

Discussion

The actual HUD view visible on screen. You may add animations to this view.

Declared In

JGProgressHUD.h

  indicatorView

The indicator view. You can assign a custom subclass of @c JGProgressHUDIndicatorView to this property or one of the default indicator views (if you do so, you should assign it before showing the HUD). This value is optional. @b Default: JGProgressHUDIndeterminateIndicatorView.

@property (nonatomic, strong, nullable) JGProgressHUDIndicatorView *indicatorView

Discussion

The indicator view. You can assign a custom subclass of @c JGProgressHUDIndicatorView to this property or one of the default indicator views (if you do so, you should assign it before showing the HUD). This value is optional. @b Default: JGProgressHUDIndeterminateIndicatorView.

Declared In

JGProgressHUD.h

  shadow

The shadow cast by the @c HUDView. This value is optional. Setting this to @c nil means no shadow is cast by the HUD. @b Default: nil.

@property (nonatomic, strong, nullable) JGProgressHUDShadow *shadow

Discussion

The shadow cast by the @c HUDView. This value is optional. Setting this to @c nil means no shadow is cast by the HUD. @b Default: nil.

Declared In

JGProgressHUD.h

  position

The position of the HUD inside the hosting view’s frame, or inside the specified frame. @b Default: JGProgressHUDPositionCenter

@property (nonatomic, assign) JGProgressHUDPosition position

Discussion

The position of the HUD inside the hosting view’s frame, or inside the specified frame. @b Default: JGProgressHUDPositionCenter

Declared In

JGProgressHUD.h

  interactionType

Interaction type of the HUD. Determines whether touches should be let through to the views behind the HUD.

@property (nonatomic, assign) JGProgressHUDInteractionType interactionType

Discussion

Interaction type of the HUD. Determines whether touches should be let through to the views behind the HUD.

See Also

Declared In

JGProgressHUD.h

  parallaxMode

Parallax mode for the HUD. This setting determines whether the HUD should have a parallax (@c UIDeviceMotion) effect. This effect is controlled by device motion on iOS and remote touchpad panning gestures on tvOS.

@property (nonatomic, assign) JGProgressHUDParallaxMode parallaxMode

Discussion

Parallax mode for the HUD. This setting determines whether the HUD should have a parallax (@c UIDeviceMotion) effect. This effect is controlled by device motion on iOS and remote touchpad panning gestures on tvOS.

See Also

Declared In

JGProgressHUD.h

  wantsFocus

When this property is set to @c YES the HUD will try to become focused, which prevents interactions with the @c targetView. If set to @c NO the HUD will not become focused and interactions with @c targetView remain possible. Default: @c YES.

@property (nonatomic, assign) BOOL wantsFocus

Discussion

When this property is set to @c YES the HUD will try to become focused, which prevents interactions with the @c targetView. If set to @c NO the HUD will not become focused and interactions with @c targetView remain possible. Default: @c YES.

Declared In

JGProgressHUD.h

  square

If the HUD should always have the same width and height. @b Default: NO.

@property (nonatomic, assign) BOOL square

Discussion

If the HUD should always have the same width and height. @b Default: NO.

Declared In

JGProgressHUD.h

  vibrancyEnabled

Internally @c JGProgressHUD uses an @c UIVisualEffectView with a @c UIBlurEffect. A second @c UIVisualEffectView can be added on top of that with a @c UIVibrancyEffect which amplifies and adjusts the color of content layered behind the view, allowing content placed inside the contentView to become more vivid. This flag sets whether the @c UIVibrancyEffect should be used. Using the vibrancy effect can sometimes, depending on the contents of the display, result in a weird look (especially on iOS < 9.3). @b Default: NO.

@property (nonatomic, assign) BOOL vibrancyEnabled

Discussion

Internally @c JGProgressHUD uses an @c UIVisualEffectView with a @c UIBlurEffect. A second @c UIVisualEffectView can be added on top of that with a @c UIVibrancyEffect which amplifies and adjusts the color of content layered behind the view, allowing content placed inside the contentView to become more vivid. This flag sets whether the @c UIVibrancyEffect should be used. Using the vibrancy effect can sometimes, depending on the contents of the display, result in a weird look (especially on iOS < 9.3). @b Default: NO.

Declared In

JGProgressHUD.h

  cornerRadius

The radius used for rounding the four corners of the HUD view. @b Default: 10.0.

@property (nonatomic, assign) CGFloat cornerRadius

Discussion

The radius used for rounding the four corners of the HUD view. @b Default: 10.0.

Declared In

JGProgressHUD.h

  contentInsets

Insets the contents of the HUD. @b Default: (20, 20, 20, 20).

@property (nonatomic, assign) UIEdgeInsets contentInsets

Discussion

Insets the contents of the HUD. @b Default: (20, 20, 20, 20).

Declared In

JGProgressHUD.h

  visible

Whether the HUD is visible on screen.

@property (nonatomic, assign, readonly, getter=isVisible) BOOL visible

Return Value

Whether the HUD is visible on screen.

Declared In

JGProgressHUD.h

  progress

The progress to display using the @c progressIndicatorView. A change of this property is not animated. Use the @c setProgress:animated: method for an animated progress change. @b Default: 0.0.

@property (nonatomic, assign) float progress

Discussion

The progress to display using the @c progressIndicatorView. A change of this property is not animated. Use the @c setProgress:animated: method for an animated progress change. @b Default: 0.0.

Declared In

JGProgressHUD.h

  minimumDisplayTime

Specifies a minimum time that the HUD will be on-screen. Useful to prevent the HUD from flashing quickly on the screen when indeterminate tasks complete more quickly than expected. @b Default: 0.0.

@property (nonatomic, assign) NSTimeInterval minimumDisplayTime

Discussion

Specifies a minimum time that the HUD will be on-screen. Useful to prevent the HUD from flashing quickly on the screen when indeterminate tasks complete more quickly than expected. @b Default: 0.0.

Declared In

JGProgressHUD.h

  voiceOverEnabled

Determines whether Voice Over announcements should be made upon displaying the HUD (if Voice Over is active). @b Default: YES

@property (nonatomic, assign) BOOL voiceOverEnabled

Discussion

Determines whether Voice Over announcements should be made upon displaying the HUD (if Voice Over is active). @b Default: YES

Declared In

JGProgressHUD.h

  tapOnHUDViewBlock

A block to be invoked when the HUD view is tapped.

@property (nonatomic, copy, nullable) void ( ^ ) ( JGProgressHUD *__nonnull HUD ) tapOnHUDViewBlock

Discussion

A block to be invoked when the HUD view is tapped.

Note: The interaction type of the HUD must be @c JGProgressHUDInteractionTypeBlockTouchesOnHUDView or @c JGProgressHUDInteractionTypeBlockAllTouches, otherwise this block won’t be fired.

Declared In

JGProgressHUD.h

  tapOutsideBlock

A block to be invoked when the area outside of the HUD view is tapped.

@property (nonatomic, copy, nullable) void ( ^ ) ( JGProgressHUD *__nonnull HUD ) tapOutsideBlock

Discussion

A block to be invoked when the area outside of the HUD view is tapped.

Note: The interaction type of the HUD must be @c JGProgressHUDInteractionTypeBlockAllTouches, otherwise this block won’t be fired.

Declared In

JGProgressHUD.h

Extension Methods

  thick

Setting this to @c YES makes the text and indicator views bigger. @b Default: NO.

@property (nonatomic, assign) BOOL thick

Discussion

Setting this to @c YES makes the text and indicator views bigger. @b Default: NO.

Declared In

JGProgressHUD.m

HUDManagement Methods

+ allProgressHUDsInView:

The view to return all visible progress HUDs for.

+ (NSArray *)allProgressHUDsInView:(UIView *)view

Parameters

view

The view to return all visible progress HUDs for.

Return Value

All visible progress HUDs in the view.

Declared In

JGProgressHUD.h

+ allProgressHUDsInViewHierarchy:

The view to return all visible progress HUDs for.

+ (NSArray *)allProgressHUDsInViewHierarchy:(UIView *)view

Parameters

view

The view to return all visible progress HUDs for.

Return Value

All visible progress HUDs in the view and its subviews.

Declared In

JGProgressHUD.h