Indicator customizing
✅ 기본 Indicator를 변경해보자.
우선 UIRefreshControl에서도 사용되고, ActivityIndicator에서도 사용된다.
나는 더 예쁜 UI구성을 위해 Lottie를 활용했다.
✅ 위와 같이 코드를 작성하면 된다.
let loadingView: AnimationView = .init(name: StringSet.Lottie.loading)
let indicatorView: AnimationView = .init(name: StringSet.Lottie.loading)
let refreshControl = UIRefreshControl()
private func setupAnimationViews() {
// main loading
view.addSubview(loadingView)
loadingView.snp.makeConstraints {
$0.width.height.equalTo(100)
$0.center.equalToSuperview()
}
isLoading = true
// refresh indicator
refreshControl.addSubview(indicatorView)
indicatorView.snp.makeConstraints {
$0.width.height.equalTo(100)
$0.center.equalToSuperview()
}
refreshControl.tintColor = .clear
}
로딩 여부를 체크하는 변수를 만들어서 didSet을 활용하여 처리한다.
var isLoading = false {
didSet {
if isLoading {
if refreshControl.isRefreshing {
indicatorView.isHidden = false
indicatorView.loopMode = .loop
indicatorView.play()
} else {
loadingView.isHidden = false
loadingView.loopMode = .loop
loadingView.play()
}
} else {
loadingView.isHidden = true
indicatorView.isHidden = true
loadingView.stop()
indicatorView.stop()
}
}
}
'project > Kuring(공지알림)' 카테고리의 다른 글
[iOS] Thread 1: "Attempt to insert non-property list object () for key ~ (0) | 2022.05.05 |
---|---|
[iOS] tableViewCell Swipe Action 구현하기 (0) | 2022.05.05 |
[iOS] Haptic Feedback에 대해서 알아보자🐣 (0) | 2022.03.21 |
[iOS] inAppReview(StoreKit)✨ (0) | 2022.03.06 |
[iOS] Xcode Storyboard(스토리보드) 없이 코드로 대체하는 방법 (0) | 2022.01.07 |