본문 바로가기

Swift_Grammar

[Swift_Library] ProgressHUD

이번 포스팅에서는

커스터마이징 되어진 ActivityIndicator를

보다 손쉽게 사용할 수 있는 

ProgressHUD 오픈 아리브러리 사용법에 대해서

간단히 알아보겠다.

 

해당 라이브러리의 README를 보며 진행할것이며

Github 주소는 아래와 같다.

 

relatedcode/ProgressHUD

ProgressHUD is a lightweight and easy-to-use HUD for iOS. - relatedcode/ProgressHUD

github.com

 

일단 라이브러리를 CocoaPod을 통해 install 하겠다.

pod 'ProgressHUD'

 

그리고 cell을 터치했을때 

ActivityIndicator가 실행 되게끔

TableView를 하나 만들겠다.

 

QUICK START

quick start 부분을 먼저 보자면 

간단하게 실행해볼수 있는 코드들이 있다.

 

그리고 하단과 같이 cell을 터치했을때 

실행되게끔 입력을 해놨다.

 

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        switch indexPath.row {
        case 0:
            ProgressHUD.show("Some text...")
        case 1:
            ProgressHUD.showSucceed()
        case 2:
            ProgressHUD.showFailed()
        case 3:
            ProgressHUD.show(icon: .heart)
        default:
            timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(timerHandler), userInfo: nil, repeats: true)
        }
    }

 

 

 

Progress 같은 경우는 

Timer를 사용해서 구현해봤다.

 

0.1초의 interval을 가지고 변수 count의 값을 변경 시키며

변경된 count 값은 progress의 값으로 할당 해 주도록 했다.

 

var count: CGFloat = 0.0
var timer: Timer?
@objc private func timerHandler() {
    guard count <= 0.9 else {
        ProgressHUD.dismiss()
        count = 0.0
        timer?.invalidate()
        return
    }
    count += 0.1
    ProgressHUD.showProgress(count)
}

 

 

 

또한 README에 기재된 것처럼

아래와 같이보다 디테일한 커스터마이징을 제공하니 

살펴보며 어떤 부분이 변경되는지 살펴볼수도 있다.

ProgressHUD.animationType = .circleStrokeSpin
ProgressHUD.colorHUD = .systemGray
ProgressHUD.colorBackground = .lightGray
ProgressHUD.colorAnimation = .systemBlue
ProgressHUD.colorProgress = .systemBlue
ProgressHUD.colorStatus = .label
ProgressHUD.fontStatus = .boldSystemFont(ofSize: 24)
ProgressHUD.imageSuccess = UIImage(named: "success.png")
ProgressHUD.imageError = UIImage(named: "error.png")

 

'Swift_Grammar' 카테고리의 다른 글

[Swift_Grammar] Initialization  (0) 2021.01.12
[Swift_Grammar] Method  (0) 2021.01.06
[Swift_Grammar] Property  (0) 2020.12.31
[Swift_Grammar] 구조체와 클래스  (0) 2020.12.30
[Swift_Grammar] Optional  (0) 2020.12.28