728x90
반응형
안녕하세요! 개발하는 윤기사입니다. 이번에 소개해드릴 라이브러리는 JGProgressHUD인데요!
이 라이브러리를 이용하면 로딩뷰를 쉽게 만들 수 있습니다! 제가 실제로 출시했던 앱에 사용했었습니다.
SearchBar의 Text를 검색했을 때 API 통신을 해서 해당하는 값들을 불러오는 것이었는데,
아무래도 불러와야하는 값이 너무 크면 오래 걸리기도 하고, 앱이 멈춰 보일 수도 있을 겁니다.
그래서 앱 사용자에게 잠깐 기다리라는 의미로 로딩뷰를 표현하고자 했었습니다.
해당 OpenSource가 좋은 이유는 3가지가 있습니다!
- 자동으로 중앙에 배치해줍니다!
- 비동기적으로 처리할 때 다른 로딩 뷰에 비해서 오류가 없습니다.
- 로딩 뷰가 등장하면 다른 뷰들을 클릭하지 못하게 해 줍니다.
1. JGProgressHUD를 import 해줍니다.
import JGProgressHUD
2. JGProgressHUD를 인스턴스화시켜줍니다.
private let hud = JGProgressHUD()
3. 로딩뷰를 표시하고 싶을 때 표시해 주고, 로딩이 끝나면 로딩뷰를 없애주면 됩니다.
//로딩뷰 표시하기
hud.show(in: self.view)
//로딩이 끝나면 로딩뷰 없애기
self.hud.dismiss(animated: true)
🍎 전체 코드
//
// SearchViewController.swift
// One_Percent
//
// Created by 윤여진 on 2022/09/26.
//
import UIKit
import JGProgressHUD
final class SearchViewController: BaseViewController {
private let hud = JGProgressHUD()
lazy var tableView: UITableView = {
...
}()
private let searchBar: UISearchBar = {
...
}()
...
extension SearchViewController: UISearchBarDelegate {
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
hud.show(in: self.view)
StockNameAPIManager.shared.getStockName(query: searchBar.text ?? "") { list in
self.stockList = list
DispatchQueue.main.async {
self.tableView.reloadData()
self.hud.dismiss(animated: true)
self.dismisskeyboard()
}
}
}
func dismisskeyboard() {
view.endEditing(true)
}
}
728x90
반응형
'iOS_오픈소스 라이브러리😎' 카테고리의 다른 글
[iOS_OpenSource] Swift API 통신 쉽게하기 (Moya) _ 5 (0) | 2023.10.25 |
---|---|
[iOS_OpenSource] 안내문구 쉽게 띄우기 (Toast) _ 4 (30) | 2023.01.18 |
[iOS_OpenSource] CodeBase로 쉽게 View 만들기 (Then) _ 2 (0) | 2022.08.28 |
[iOS_OpenSource] AutoLayout 쉽게 하기 (SnapKit) _ 1 (0) | 2022.08.26 |