iOS SkeletonView 총 정리
목차
- SkeletonView란 무엇일까?
- 설치하는 방법
- 사용하는 방법 (예시 및 코드)
SkeletonView란 무엇일까?
네트워크 상태에서 받아오기 전까지 placeholder처럼 나타나는 UI
✅ 설치하는 방법
https://github.com/Juanpe/SkeletonView
cocoapod으로 파일 안에 스켈레톤 뷰 설치하면 된다.
pod 'SkeletonView'
요즘은 점점 spm이 트렌드인거 같은데, spm도 사용해도 된다
스토리보드 사용
- 코드 기반으로 할 경우에는 셀에서 별도 옵션 명시적 활성화 필요
코드예시
//
// SkeletonViewTest.swift
// kuring-uikit-ios
//
// Created by Hamlit Jason on 2021/11/30.
//
import Then
import UIKit
import SnapKit
import SkeletonView
class SkeletonViewTest : UIViewController {
@IBOutlet weak var skeletonCollectionView: UICollectionView!
var data : [Int] = []
override func viewDidLoad() {
super.viewDidLoad()
skeletonCollectionView.showAnimatedGradientSkeleton() // 애니메이션 시작
print("viewDidLoad")
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
for i in 0..<10 {
self.data.append(i)
}
self.skeletonCollectionView.hideSkeleton(reloadDataAfter: true) // 스켈레톤 뷰 숨기고 데이터 리로드
}
}
}
// 스켈레톤 뷰 코드
extension SkeletonViewTest : SkeletonCollectionViewDelegate, SkeletonCollectionViewDataSource {
// 스켈레톤 몇개 만들래?
func collectionSkeletonView(_ skeletonView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 10
}
// 스켈레톤 뷰를 적용할 cell id는 뭐야? (이 부분은 그냥 컬렉션 뷰 cell id와 같게 해주면 된다.)
func collectionSkeletonView(_ skeletonView: UICollectionView, cellIdentifierForItemAt indexPath: IndexPath) -> ReusableCellIdentifier {
return "skeletonCell"
}
}
// 일반 컬렉션 뷰 코드
extension SkeletonViewTest : UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return data.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = self.skeletonCollectionView.dequeueReusableCell(withReuseIdentifier: "skeletonCell", for: indexPath) as? skeletonCell else {
return UICollectionViewCell()
}
if !data.isEmpty {
cell.cellLabel.text = "\(indexPath.item) 번째 "
}
return cell
}
}
class skeletonCell : UICollectionViewCell {
@IBOutlet weak var cellLabel: UILabel!
}
상당히 쉬움 끝!
'project > Kuring(공지알림)' 카테고리의 다른 글
[iOS] UILabel 2줄로 표현하기 (0) | 2021.12.09 |
---|---|
[iOS] TextView keyboard resignFirstResponder (0) | 2021.12.08 |
[iOS] Error Domain = NSURLErrorDomain Code = -1200 (0) | 2021.12.08 |
[iOS] 코드로 화면전환 하는법😏 (0) | 2021.12.07 |
iOS SkeletonView 사용 주의점 (0) | 2021.12.03 |