[English](./README.md)
[![Version](https://img.shields.io/cocoapods/v/KRProgressHUD.svg?style=flat)](http://cocoapods.org/pods/KRProgressHUD)
[![License](https://img.shields.io/cocoapods/l/KRProgressHUD.svg?style=flat)](http://cocoapods.org/pods/KRProgressHUD)
[![Platform](https://img.shields.io/cocoapods/p/KRProgressHUD.svg?style=flat)](http://cocoapods.org/pods/KRProgressHUD)
[![Download](https://img.shields.io/cocoapods/dt/KRProgressHUD.svg?style=flat)](http://cocoapods.org/pods/KRProgressHUD)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
[![CI Status](http://img.shields.io/travis/krimpedance/KRProgressHUD.svg?style=flat)](https://travis-ci.org/krimpedance/KRProgressHUD)
`KRProgressHUD`は, Swiftで書かれた綺麗で使いやすいローディング画面を表示するライブラリです.
インジケータには[KRActivityIndicatorView](https://github.com/krimpedance/KRActivityIndicatorView)を使用しています.
## 特徴
- 丸いインジケータ
- カラーのカスタマイズ性
## 必要環境
- iOS 9.0+
- Xcode 12.0+
- Swift 5.3+
## デモ
`DEMO/`以下にあるサンプルプロジェクトから確認してください.
または, [Appetize.io](https://appetize.io/app/nw022juw0znkf1n5u6ynga5ntm)にてシュミレートしてください.
## インストール
KRProgressHUDは[CocoaPods](http://cocoapods.org)と[Carthage](https://github.com/Carthage/Carthage)で
インストールすることができます.
```ruby
# Podfile
pod "KRProgressHUD"
```
```ruby
# Cartfile
github "Krimpedance/KRProgressHUD"
```
## 使い方
(`/Demo`以下のサンプルを見てみてください)
#### 注意 :
**このライブラリは同期通信のようなユーザの操作を止めて処理を行うときなどに使用してください**
**PullRefreshなど, 他の場面で使用したい場合は, [KRActivityIndicatorView](https://github.com/krimpedance/KRActivityIndicator)を使用することをお勧めします**
`KRProgressHUD`はシングルトンパターンで作られています.
まず, `KRProgressHUD`をインポートします.
GCDを使用した一番簡単な表示:
```Swift
KRProgressHUD.show()
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1) {
KRProgressHUD.dismiss()
}
```
### HUDの表示
```Swift
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()` で設定してください.
この設定は一度だけ適用されます.
```Swift
KRProgressHUD.showOn(viewController).show()
```
HUDを閉じる前に, 成功やエラーなどの情報をアイコン付きで表示することもできます.
(表示は1秒間. 秒数は設定可能です.)
```Swift
class func showSuccess()
class func showInfo()
class func showWarning()
class func showError()
class func showImage() // 好きな画像を設定できます. (最大サイズは50x50です)
```
メッセージだけのHUDを表示
```Swift
public class func showMessage(_ message: String)
// 例
KRProgressHUD.showText("完了しました! \n 早速始めましょう!")
```
### HUDのメッセージの更新
パーセンテージの表示などのために, メッセージの更新メソッドがあります.
```Swift
class func update(text: String)
// 例
KRProgressHUD.update(text: "20%")
```
### HUDを閉じる
HUDを閉じるときは, 以下を実行します.
```Swift
class func dismiss(_ completion: CompleteHandler? = nil)
```
## カスタマイズ
`KRProgressHUD.appearance()` では, 標準のスタイルを設定できます.
```Swift
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)
}
```
特定の場面だけでスタイルを適用したいときは, 以下の関数を使用できます.
```Swift
@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()` で設定したスタイルは以下の関数でリセットできます.
```Swift
@discardableResult public class func resetStyles() -> KRProgressHUD.Type
```
## ライブラリに関する質問等
バグや機能のリクエストがありましたら, 気軽にコメントしてください.
## リリースノート
+ 3.4.8 :
- PrivacyInfo.xcprivacy を追加
+ 3.4.7 :
- iOS 11 以下をサポート
## ライセンス
KRProgressHUDはMITライセンスに準拠しています.
詳しくは`LICENSE`ファイルをみてください.