[Swift] UIProgressView를 사용하여 진행 상황 표시 + UIAlertController를 사용하여 처리 완료 알림

쓰기



· UIProgressView를 사용하여 진행 상황 표시
· UialertController를 이용하여 처리 완료를 통지

처리 이미지





개발 환경



PC
MacBook Air (13-inch, 2017)


PC OS
macOS Catalina (ver 10.15.6)


IDE
Xcode (ver 12.0.1)


아이폰
SE(2nd Generation)


iPhone OS
ver 14.0.1


Swift
ver 5.3



전제 조건



· Xcode를 사용하여 데스크톱에 Sample라는 프로젝트 앱 만들기
・이번은 Sample 에 있는 ViewController.swift 에 코드를 기술한다
UIProgressViewMain.storyboard 위에 배치
· UIProgressView는 화면 중앙에 배치되도록 제약 조건을 설정합니다.
・아래의 코드예는 리팩토링을 실시하고 있지 않다

코드 예



ViewController.swift
import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var progressView: UIProgressView!

    override func viewDidLoad() {

        DispatchQueue.main.asyncAfter(deadline: .now() + 1){
            self.progressView.setProgress(1/10, animated: true)
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 2){
            self.progressView.setProgress(2/10, animated: true)
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 3){
            self.progressView.setProgress(3/10, animated: true)
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 4){
            self.progressView.setProgress(4/10, animated: true)
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 5){
            self.progressView.setProgress(5/10, animated: true)
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 6){
            self.progressView.setProgress(6/10, animated: true)
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 7){
            self.progressView.setProgress(7/10, animated: true)
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 8){
            self.progressView.setProgress(8/10, animated: true)
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 9){
            self.progressView.setProgress(9/10, animated: true)
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 10){
            self.progressView.setProgress(10/10, animated: true)
        }

        DispatchQueue.main.asyncAfter(deadline: .now() + 11){
            let alert:UIAlertController = UIAlertController(title: "お知らせ", message: "処理が終了しました", preferredStyle: .alert)
            let action:UIAlertAction = UIAlertAction(title: "OK", style: .default, handler: nil)
            alert.addAction(action)
            self.present(alert, animated: true, completion: nil)
        }
    }

    override func viewWillAppear(_ animated: Bool) {
        progressView.progress = 0
    }
}

좋은 웹페이지 즐겨찾기