Notice
Recent Posts
Recent Comments
Link
투케이2K
342. (ios/swift5) [유틸 파일] startLoadingAlert : alert 로딩 프로그레스 시작 및 종료 수행 본문
IOS
342. (ios/swift5) [유틸 파일] startLoadingAlert : alert 로딩 프로그레스 시작 및 종료 수행
투케이2K 2023. 10. 8. 21:30[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT5
[소스 코드]
// -----------------------------------------------------------------------------------------
// MARK: - [전역 변수 선언]
// -----------------------------------------------------------------------------------------
private let ACTIVITY_NAME = "C_Ui_View"
var progressAlert : UIAlertController?
// -----------------------------------------------------------------------------------------
// MARK: [alert 로딩 프로그레스 시작 메소드]
// -----------------------------------------------------------------------------------------
// [호출 방법 : self.startLoadingAlert(onView : self.view, title: "Please wait ...", message: "", okBtn: "닫기")]
// -----------------------------------------------------------------------------------------
func startLoadingAlert(onView : UIView, title: String, okBtn: String) {
S_Log._D_(description: "로딩 프로그레스 시작 수행", data: [
"TITLE :: " + String(describing: title)
])
DispatchQueue.main.async {
// [progressAlert 생성]
progressAlert = UIAlertController(title: title, message: "", preferredStyle: .alert)
progressAlert?.addAction(UIAlertAction(title: okBtn, style: .default) { (action) in
// [취소 버튼 클릭 이벤트 내용 정의 실시]
self.stopLoadingAlert()
})
// [progressAlert 표시]
if progressAlert != nil {
self.present(progressAlert!, animated: true, completion: {
//let margin:CGFloat = 8.0 // 마진
let rect = CGRect(x: 2, y: 2, width: 60 , height: 60) // 크기
// [Indicator : 원형 프로그레스 생성 실시]
let activityIndicator = UIActivityIndicatorView(frame: rect)
// [색상 지정 실시]
activityIndicator.color = UIColor.purple
// [hidden 시 애니메이션 종료 여부 지정]
activityIndicator.hidesWhenStopped = true
// [스타일 지정 실시]
if #available(iOS 13.0, *) {
activityIndicator.style = .medium
}
else {
activityIndicator.style = UIActivityIndicatorView.Style.white
}
// [애니메이션 시작 수행]
activityIndicator.startAnimating()
progressAlert!.view.addSubview(activityIndicator) // alert에 추가 실시
})
}
}
}
// -----------------------------------------------------------------------------------------
// MARK: [원형 프로그레스 종료 메소드]
// -----------------------------------------------------------------------------------------
// [호출 방법 : self.stopLoadingAlert()]
// -----------------------------------------------------------------------------------------
func stopLoadingAlert() {
S_Log._D_(description: "로딩 프로그레스 종료 실시", data: nil)
DispatchQueue.main.async {
if progressAlert != nil {
progressAlert?.dismiss(animated: false)
progressAlert = nil
}
}
}
[결과 출력]
반응형
'IOS' 카테고리의 다른 글
Comments