KRProgressHUD
は, Swiftで書かれた綺麗で使いやすいローディング画面を表示するライブラリです.
インジケータにはKRActivityIndicatorViewを使用しています.
- 丸いインジケータ
- カラーのカスタマイズ性
- iOS 9.0+
- Xcode 12.0+
- Swift 5.3+
DEMO/
以下にあるサンプルプロジェクトから確認してください.
または, Appetize.ioにてシュミレートしてください.
KRProgressHUDはCocoaPodsとCarthageで インストールすることができます.
# Podfile
pod "KRProgressHUD"
# Cartfile
github "Krimpedance/KRProgressHUD"
(/Demo
以下のサンプルを見てみてください)
このライブラリは同期通信のようなユーザの操作を止めて処理を行うときなどに使用してください
PullRefreshなど, 他の場面で使用したい場合は, KRActivityIndicatorViewを使用することをお勧めします
KRProgressHUD
はシングルトンパターンで作られています.
まず, KRProgressHUD
をインポートします.
GCDを使用した一番簡単な表示:
KRProgressHUD.show()
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1) {
KRProgressHUD.dismiss()
}
class func show(withMessage message:String? = nil, completion: CompleteHandler? = nil)
// 例
KRProgressHUD.show()
KRProgressHUD.show(withMessage: "Loading...")
KRProgressHUD.show(withMessage: "Loading...") {
print("Complete handler")
}
ViewController上に表示
もしViewController上にHUDを表示したいときは, showOn()
で設定してください.
この設定は一度だけ適用されます.
KRProgressHUD.showOn(viewController).show()
HUDを閉じる前に, 成功やエラーなどの情報をアイコン付きで表示することもできます. (表示は1秒間. 秒数は設定可能です.)
class func showSuccess()
class func showInfo()
class func showWarning()
class func showError()
class func showImage() // 好きな画像を設定できます. (最大サイズは50x50です)
メッセージだけのHUDを表示
public class func showMessage(_ message: String)
// 例
KRProgressHUD.showText("完了しました! \n 早速始めましょう!")
パーセンテージの表示などのために, メッセージの更新メソッドがあります.
class func update(text: String)
// 例
KRProgressHUD.update(text: "20%")
HUDを閉じるときは, 以下を実行します.
class func dismiss(_ completion: CompleteHandler? = nil)
KRProgressHUD.appearance()
では, 標準のスタイルを設定できます.
class KRProgressHUDAppearance {
/// HUDのスタイル.
public var style = KRProgressHUDStyle.white
/// マスクタイプ
public var maskType = KRProgressHUDMaskType.black
/// ローディングインジケータのグラデーションカラー
public var activityIndicatorColors = [UIColor]([.black, .lightGray])
/// ラベルのフォント
public var font = UIFont.systemFont(ofSize: 13)
/// HUDのセンター位置
public var viewCenterPosition = CGPoint(x: UIScreen.main.bounds.width/2, y: UIScreen.main.bounds.height/2)
/// HUDの表示時間.
public var duration = Double(1.0)
}
特定の場面だけでスタイルを適用したいときは, 以下の関数を使用できます.
@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(centerPosition point: CGPoint) -> KRProgressHUD.Type
@discardableResult public class func set(duration: Double) -> KRProgressHUD.Type
// 例
KRProgressHUD
.set(style: .custom(background: .blue, text: .white, icon: nil))
.set(maskType: .white)
.show()
set()
で設定したスタイルは以下の関数でリセットできます.
@discardableResult public class func resetStyles() -> KRProgressHUD.Type
バグや機能のリクエストがありましたら, 気軽にコメントしてください.
-
3.4.8 :
- PrivacyInfo.xcprivacy を追加
-
3.4.7 :
- iOS 11 以下をサポート
KRProgressHUDはMITライセンスに準拠しています.
詳しくはLICENSE
ファイルをみてください.