SwiftUI制作简易的新闻列表Demo
import SwiftUI
struct HomeView: View {
@StateObject var newsViewModelVM = NewsViewModel()
var body: some View {
ZStack{
Group{
switch newsViewModelVM.state{
case .loading:
ProgressView()
case .failed(let error):
ErrorView(error: error) {
newsViewModelVM.getArticels()
}
case .success(let articels):
NavigationView{
List(articels){
item in
PostCellView(article: item)
}
.listStyle(.plain)
.navigationTitle(Text("News"))
}
}
}
.onAppear {
newsViewModelVM.getArticels()
}
Text("Desgin By Lujun 2022.2.8")
.font(.system(size: 30).bold())
.foregroundColor(.orange)
.shadow(color: .black, radius: 5, x: 5, y: 5)
.offset(y: 300)
}
}
}
struct NewsModel: Codable {
let articles: [Article]
}
struct Article: Codable,Identifiable {
var id = UUID()
let author: String?