[swift] Swift에서 NVActivityIndicatorView를 사용하여 버튼 클릭 시 로딩 표시하기

이번 예제에서는 Swift에서 NVActivityIndicatorView 라이브러리를 사용하여 버튼 클릭 시 로딩 표시하는 방법을 알아보겠습니다.

1. NVActivityIndicatorView 라이브러리 설치하기

우선 NVActivityIndicatorView 라이브러리를 설치해야 합니다. Podfile에 다음과 같이 추가한 뒤 pod install 명령어를 실행해주세요.

pod 'NVActivityIndicatorView'

2. NVActivityIndicatorView 인스턴스 생성하기

로딩 표시를 하기 위해 먼저 NVActivityIndicatorView 인스턴스를 생성해야 합니다. UIViewController의 원하는 위치에 다음과 같이 코드를 추가해주세요.

import NVActivityIndicatorView

class ViewController: UIViewController {

    var activityIndicatorView: NVActivityIndicatorView!

    override func viewDidLoad() {
        super.viewDidLoad()

        activityIndicatorView = NVActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 40, height: 40), type: .ballClipRotate, color: .gray, padding: nil)
        activityIndicatorView.center = view.center
        view.addSubview(activityIndicatorView)
    }

    // ...
}

NVActivityIndicatorViewframetype, color 등을 적절히 설정하여 로딩 표시의 모양을 원하는 대로 만들 수 있습니다.

3. 버튼 클릭 시 로딩 표시하기

이제 버튼을 클릭할 때마다 로딩 표시를 할 수 있도록 코드를 추가해보겠습니다. 다음은 버튼을 클릭할 때 startAnimating() 메서드를 호출하여 로딩을 시작하고, 작업이 완료되면 stopAnimating() 메서드를 호출하여 로딩을 종료하는 예제입니다.

import NVActivityIndicatorView

class ViewController: UIViewController {

    // ...

    @IBAction func buttonTapped(_ sender: UIButton) {
        activityIndicatorView.startAnimating()

        // 네트워크 요청이나 긴 작업을 수행하는 코드 작성

        DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
            self.activityIndicatorView.stopAnimating()

            // 작업 완료 후 수행해야 할 코드 작성
        }
    }

    // ...
}

위 예제에서는 startAnimating() 메서드를 호출하여 로딩을 시작하고, 2초 후에 stopAnimating() 메서드를 호출하여 로딩을 종료하도록 처리하였습니다.

마무리

이제 NVActivityIndicatorView를 사용하여 Swift에서 버튼 클릭 시 로딩 표시하는 방법을 알아보았습니다. NVActivityIndicatorView는 다양한 로딩 표시 스타일을 제공하기 때문에 필요에 따라 적절한 스타일을 선택하여 사용할 수 있습니다.

더 자세한 사용법은 NVActivityIndicatorView GitHub 페이지에서 확인할 수 있습니다.