Swiftpack.co - Package - krimpedance/KRProgressHUD


Version License Platform Download Carthage compatible CI Status

KRProgressHUD is a beautiful and easy-to-use progress HUD for your iOS written by Swift.

KRActivityIndicatorView is used for loading view.


  • Round indicator
  • Indicator color can be customized


  • iOS 9.0+
  • Xcode 12.0+
  • Swift 5.3+


To run the example project, clone the repo, and open KRProgressHUDDemo.xcodeproj from the DEMO directory.

or appetize.io


KRProgressHUD is available through CocoaPods and Carthage. To install it, simply add the following line to your Podfile or Cartfile:

# CocoaPods
pod "KRProgressHUD"
# Carthage
github "Krimpedance/KRProgressHUD"


(see sample Xcode project in /Demo)

Caution :

Only use it if you absolutely need to perform a task before taking the user forward.

If you want to use it with other cases (ex. pull to refresh), I suggest using KRActivityIndicatorView.

KRProgressHUD is created as a singleton.

At first, import KRProgressHUD in your swift file.

Show simple HUD :


DispatchQueue.main.asyncAfter(deadline: .now()+1) {

Showing the HUD

class func show(withMessage message:String? = nil, completion: CompleteHandler? = nil)

// Example
KRProgressHUD.show(withMessage: "Loading...")
KRProgressHUD.show(withMessage: "Loading...") {
   print("Complete handler")

Show on ViewController

If you want to show HUD on a view controller, set at showOn().

(This is applied only once.)


Show a confirmation glyph before getting dismissed a little bit later. (The display time is 1 sec in default. You can change the timing.)

class func showSuccess()
class func showInfo()
class func showWarning()
class func showError()
class func showImage() // This can set custom image. (Max size is 50x50)

Show the HUD (only message)

public class func showMessage(_ message: String)

// Example
KRProgressHUD.showMessage("Completed! \n Let's start!")

Update the HUD's message

The HUD can update message.

class func update(message: String)

// Example
KRProgressHUD.update(message: "20%")

Dismissing the HUD

The HUD can be dismissed using:

class func dismiss(_ completion: CompleteHandler? = nil)


KRProgressHUD.appearance() can set default styles.

class KRProgressHUDAppearance {
    /// Default style.
    public var style = KRProgressHUDStyle.white
    /// Default mask type.
    public var maskType = KRProgressHUDMaskType.black
    /// Default KRActivityIndicatorView colors
    public var activityIndicatorColors = [UIColor](https://raw.github.com/krimpedance/KRProgressHUD/blob/master/[.black, .lightGray])
    /// Default message label font.
    public var font = UIFont.systemFont(ofSize: 13)
    /// Default HUD center offset of y axis.
    public var viewOffset = CGFloat(0.0)
    /// Default duration to show HUD.
    public var duration = Double(1.0)

When you'd like to make styles reflected only in specific situation, use following methods.

@discardableResult public class func set(style: KRProgressHUDStyle) -> KRProgressHUD.Type
@discardableResult public class func set(maskType: KRProgressHUDMaskType) -> KRProgressHUD.Type
@discardableResult public class func set(activityIndicatorViewColors colors: [UIColor]) -> KRProgressHUD.Type
@discardableResult public class func set(font: UIFont) -> KRProgressHUD.Type
@discardableResult public class func set(viewOffset offset: CGFloat) -> KRProgressHUD.Type
@discardableResult public class func set(duration: Double) -> KRProgressHUD.Type

// Example
   .set(style: .custom(background: .blue, text: .white, icon: nil))
   .set(maskType: .white)

These set() setting can be reset by

@discardableResult public class func resetStyles() -> KRProgressHUD.Type

Contributing to this project

I'm seeking bug reports and feature requests.

Release Note

  • 3.4.7 :

    • Support for iOS 11 and below
  • 3.4.6 :

    • Update for Xcode 12


KRProgressHUD is available under the MIT license.

See the LICENSE file for more info.


Stars: 514

Used By

Total: 0


KRProgressHUD is now supported Swift Package manager - 2019-10-01 02:40:20

KRProgressHUD 3.4.3 for iOS 13 is available - 2019-10-01 02:39:28

Fixed iOS 13 bugs.

KRProgressHUD 3.4.1 for Swift 5.0 is available - 2019-05-01 07:45:27

KRProgressHUD 3.3.0 for Swift 4.2 is available - 2018-09-18 13:27:08

KRProgressHUD 3.1.0 for Swift4 is available - 2017-09-22 06:15:37

KRProgressHUD 3.1 is adapted to Xcode9 and Swift4. If you want to use swift3.2 version, show swift3.2 branch.

KRProgressHUD 3.0 is available 🍺 - 2017-05-19 08:27:26


- KRActivityIndicatorView was cut off.

- The setting method of styles was changed big.

  • Default settings
KRProgressHUD.appearance().style = .black
KRProgressHUD.appearance().activityIndicatorStyle = .gradationColor(head: .red, tail: .white)
  • Styles only in specific situation
    .set(style: .black)
    .set(maskType: .clear)

These settings can be reset by


Together with show()

    .set(style: .black)

KRProgressHUD 2.2.0 is available 🍺 - 2017-03-03 08:48:09


  • The style to which the background color can be changed was added.
    • KRProgressHUDStyle.color(background: UIColor, contents: UIColor)

Swift 2.* isn't supported from this version.

KRProgressHUD 2.1.0 is available 🍺 - 2016-11-09 13:49:38


  • Show only text HUD with showText() .
  • Default font was changed system font.

if you use swift2.3, show swift2.3 branch :D

KRProgressHUD 1.7.0 supported Swift 2.3 - 2016-09-15 09:55:19

See README for more information.

KRProgressHUD 2.0.0 supported Swift3 - 2016-09-15 09:55:11

KRProgressHUD(2.0.0) corresponds to Swift 3.0.

The type and the function are modified a little. See README for more information.