Notice
Recent Posts
Recent Comments
Link
투케이2K
41. (ios/swift) 로딩 프로그레스 만들기 - UIAlertController , UIProgressView 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드]
// MARK: - [로딩 프로그레스 시작 수행]
var progressView : UIProgressView!
var progressAlert : UIAlertController!
func progressWaitStart(){
// [메인 큐에서 비동기 방식 실행 : UI 동작 실시]
DispatchQueue.main.async {
print("")
print("===============================")
print("[A_Main >> progressWaitStart() :: 로딩 프로그레스 호출 실시]")
print("===============================")
print("")
self.progressAlert = UIAlertController(title: "Please wait ...", message: "", preferredStyle: .alert)
self.progressAlert.addAction(UIAlertAction(title: "cancle", style: .default) { (action) in
// [취소 버튼 클릭 이벤트 내용 정의 실시]
self.progressWaitStop()
})
self.present(self.progressAlert, animated: true, completion: {
let margin:CGFloat = 8.0 // 마진
let rect = CGRect(x: margin, y: 72.0, width: self.progressAlert.view.frame.width - margin * 2.0 , height: 2.0) // 크기
self.progressView = UIProgressView(frame: rect) // 프로그레스 생성
self.progressView!.progress = 0 // 초기 프로그레스 값
self.progressView!.tintColor = UIColor.tintColor // 프로그레스 색상
self.progressAlert.view.addSubview(self.progressView!) // alert에 추가 실시
})
}
}
// MARK: - [로딩 프로그레스 종료 수행]
func progressWaitStop(){
// [메인 큐에서 비동기 방식 실행 : UI 동작 실시]
DispatchQueue.main.async {
print("")
print("===============================")
print("[A_Main >> progressWaitStop() :: 로딩 프로그레스 종료 실시]")
print("===============================")
print("")
if self.progressView != nil && self.progressAlert != nil {
self.progressAlert.dismiss(animated: false, completion: nil) // 팝업창 지우기 실시
self.progressView = nil // 초기값 지정
self.progressAlert = nil // 초기값 지정
}
}
}
// MARK: - [로딩 프로그레스에 값 지정 실시]
if self.progressView != nil && self.progressAlert != nil {
// [프로그레스에 값 지정 0 ~ 1 값 : 소수점 값]
self.progressView.progress = Float((self.main_webview?.estimatedProgress)!)
// [로딩 완료 상태 체크 : 1 값]
if Float((self.main_webview?.estimatedProgress)!) >= 1 {
self.progressWaitStop() // 팝업창 지우기 실시
}
}
[결과 출력]
반응형
'IOS' 카테고리의 다른 글
43. (ios/swift) 블루투스 (bluetooth) 신호 활성 수행 - CBPeripheralManager (0) | 2021.11.04 |
---|---|
42. (ios/swift) 웹뷰 (webview) 자바 스크립트 통신 참고 코드 - WKWebView , WKScriptMessage (0) | 2021.11.02 |
40. (ios/swift) toast 토스트 메시지 표시 수행 실시 (0) | 2021.10.31 |
39. (ios/swift) 애플리케이션 설정 창 이동 실시 - 권한 거부 시 수행 (0) | 2021.10.31 |
38. (ios/swift) 로딩 화면 연장 및 로직 처리 방법 - LaunchScreen, ViewController (0) | 2021.10.31 |
Comments