화면이 로딩 중일 때, 네트워크가 연결되지 않았을 때 나타나게 될 플레이스 홀더 입니다.
사라졌다 나타나는 Blink animation도 추가하였습니다.
작성은 생각보다 간편합니다.
struct CoinPlaceholderView: View {
let coin: CoinModel
@State private var opacity: Double = 1
var body: some View {
HStack(spacing: 0) {
leftColumn
Spacer()
rightColmn
}
.padding()
.contentShape(Rectangle())
.redacted(reason: .placeholder) // 스켈레톤 플레이스 홀더
.opacity(opacity) // 여기서부터 Blink Animation
.onAppear {
withAnimation {
opacity = 0.2
}
}
.animation(Animation.easeInOut(duration: 1.5).repeatForever(autoreverses: true), value: opacity)
}
}
사용 할 때는 다음과 같이 사용할 수 있습니다.
VStack {
ForEach(0..<5) { i in
CoinPlaceholderView()
}
}
Redacted 참고 유튜브:
Blink Animation 참고 문서:
'Project > SwiftUI 블록와이드' 카테고리의 다른 글
[SwiftUI Project] 예외처리: StatusCode에 따라서 안내글 띄우기 (0) | 2022.10.14 |
---|---|
[SwiftUI Project] 예외처리: Json Data -> CoreData 백업하기 (0) | 2022.10.14 |
[SwiftUI Project] 당겨서 새로고침 Pull to Refresh (0) | 2022.10.03 |
[SwiftUI Project] HStack 빈 공간이 터치 안되는 문제 해결 (0) | 2022.10.02 |
[SwiftUI Project] LazyVStack 하이라이트 색 설정하기 (0) | 2022.10.02 |
댓글