[swift] Swift SkeletonView 데이터 불러오기
Swift SkeletonView는 데이터를 비동기적으로 불러올 때 사용자에게 데이터 로딩 상태를 시각적으로 보여주는 라이브러리입니다. 이를 통해 사용자는 앱이 데이터를 로딩 중이라는 것을 알 수 있으며, 보다 나은 사용자 경험을 제공할 수 있습니다.
설치
Swift SkeletonView를 사용하기 위해서는 먼저 CocoaPods를 이용하여 프로젝트에 해당 라이브러리를 추가해야 합니다. Podfile에 다음과 같은 코드를 추가합니다.
pod 'SkeletonView'
그리고 터미널에서 pod install
명령을 실행하여 Cocoapods를 설치합니다.
사용 방법
- 먼저, SkeletonView를 import 합니다.
import SkeletonView
- 데이터 로딩 중인 뷰에다가 SkeletonView를 적용합니다. 다음과 같은 코드를 사용하여 View에 SkeletonView를 적용할 수 있습니다.
view.showAnimatedGradientSkeleton()
- 데이터 로딩이 완료되면 SkeletonView를 숨기는 코드를 사용합니다. 다음과 같은 코드를 사용하여 SkeletonView를 숨길 수 있습니다.
view.hideSkeleton()
예시
다음은 TableView를 사용하여 데이터를 비동기적으로 불러올 때 SkeletonView를 활용하는 예시입니다.
import UIKit
import SkeletonView
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var data: [String] = []
override func viewDidLoad() {
super.viewDidLoad()
// TableView의 Delegate와 DataSource를 설정합니다.
tableView.delegate = self
tableView.dataSource = self
// SkeletonView를 설정합니다.
tableView.showAnimatedGradientSkeleton()
// 데이터를 비동기적으로 로딩합니다.
fetchData()
}
func fetchData() {
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
self.data = ["Data 1", "Data 2", "Data 3"]
self.tableView.hideSkeleton()
self.tableView.reloadData()
}
}
}
extension ViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath)
cell.textLabel?.text = data[indexPath.row]
return cell
}
}
위의 예시에서는 TableView의 데이터를 비동기적으로 불러오는 기능을 구현하였습니다. 데이터를 로딩 중일 때는 SkeletonView를 노출시키고, 데이터 로딩이 완료되면 SkeletonView를 숨깁니다.
이제 Swift SkeletonView를 사용하여 데이터 로딩 상태를 시각적으로 보여줄 수 있습니다.