Swift의 HUD 라이브러리 PKHUD

12322 단어 iOSSwift우이

소개



HUD 라이브러리로서 가장 유명한 것은 SVProgressHUD라고 생각합니다만, 이번은 Swift로 되어 있는 PKHUD 를 조사해 보았습니다.

왜 PKHUD인가?



GitHub에서 HUD 그리고 언어가 Swift로 검색한 결과, 스타 수가 가장 많았기 때문입니다. (2018 12/10 시점)
  • PKHUD
  • SwiftNotice
  • KRProgressHUD
  • VHUD

  • 거친 비교


    라이브러리 이름
    스타 수
    Swift
    Xcode
    기타


    PKHUD
    3,057
    4.2
    Xcode 10

    SwiftNotice
    755
    4.0
    Xcode 9.3
    설치방법이 매뉴얼만

    KRProgressHUD
    338
    4.2
    Xcode 10
    일본어 문서가 있음

    VHUD
    138
    4.2
    Xcode 10



    PKHUD 정보



    특징


  • Apple의 디자인을 기반으로 만들어졌습니다
  • 표시 원래의 View를 명시적으로 지정할 수 있다
  • 높은 사용자 정의

  • 사용법



    기본 조작

    쉽게 HUD를 표시할 수 있는 HUD 클래스가 제공되고 있습니다.
    이것을 사용하면 매우 쉽게 로딩과 상태를 볼 수 있습니다.
    // HUDを表示
    HUD.show(.progress)
    HUD.show(.progress, onView: view) // 表示もとのviewを明示的に指定
    
    // HUDを表示して指定時間後に非表示にする
    HUD.flash(.progress, delay: 3)
    // HUDを出し終わったあとのタイミングが取れる
    HUD.flash(.success, onView: view, delay: 2) { _ in
                // HUDを非表示にしたあとの処理
            }
    
    // HUDを非表示にする
    HUD.hide()
    HUD.hide { _ in
                // HUDを非表示にしたあとの処理
            }
    
    

    지정할 수 있는 Type
    
    public enum HUDContentType {
    
        case success
    
        case error
    
        case progress
    
        case image(UIImage?)
    
        case rotatingImage(UIImage?)
    
        case labeledSuccess(title: String?, subtitle: String?)
    
        case labeledError(title: String?, subtitle: String?)
    
        case labeledProgress(title: String?, subtitle: String?)
    
        case labeledImage(image: UIImage?, title: String?, subtitle: String?)
    
        case labeledRotatingImage(image: UIImage?, title: String?, subtitle: String?)
    
        case label(String?)
    
        case systemActivity
    }
    
    

    예)
    성공


    error


    progress


    배경
    배경을 어둡게 할지 여부를 설정할 수 있습니다.
    기본적으로 어두워지는 설정입니다.
    HUD.dimsBackground = false
    HUD.show(.progress, onView: view)
    


    dimsBackground
    true
    false







    사용자 정의 정보


    HUD 로 제공되고 있는 것으로 충분히 사용할 수 있습니다만, 커스터마이즈 하고 싶다고 하는 것은 있다고 생각합니다.
    이 경우 PKHUD 를 사용합니다.PKHUD.sharedHUD.contentView 에 사용자 정의 된 View를 설정하여 얻을 수 있습니다.
    PKHUD에서 이미 정의된 View( PKHUDSquareBaseView , PKHUDWideBaseView )를 사용하면 쉽게 사용자 정의할 수 있습니다.

    예)
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            PKHUD.sharedHUD.contentView = CustomHUDView(image: PKHUDAssets.checkmarkImage, title: "Success!", subtitle: nil)
            PKHUD.sharedHUD.show(onView: view)
        }
    }
    
    class CustomHUDView: PKHUDSquareBaseView {
    
        override init(image: UIImage?, title: String?, subtitle: String?) {
            super.init(image: image, title: title, subtitle: subtitle)
    
            titleLabel.textColor = UIColor.lightGray
            backgroundColor = UIColor(red: 0xAB/0xFF, green: 0xD2/0xFF, blue: 0xFC/0xFF, alpha: 1.0)
        }
    
        required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
        }
    }
    



    주의점PKHUDSquareBaseView를 사용자 정의했지만 로딩을 보려면 로딩 기능이있는 View를 PKHUD.sharedHUD.contentView로 다시 설정하십시오.
    보려는 내용에 따라 PKHUD.sharedHUD.contentView를 매번 바꿀 필요가 있으므로 PKHUD를 확장하는 것이 좋을까 생각했습니다.

    문자색을 바꾸고 싶은 것만 같으면 조금 번거롭네요,,,

    요약



    Swift에서 만든 HUD 라이브러리 PKHUD기본적으로 간단하고 사용하기 쉽다는 인상입니다.
    오랫동안 SVProgressHUD에 신세를 졌지만 Swift로 만든 PKHUD를 사용하고 싶습니다.

    좋은 웹페이지 즐겨찾기