Представление SwiftUI MVVM с управлением состоянием и наложением

#ios #mvvm #swiftui

#iOS #mvvm #свифтуи

Вопрос:

У меня есть модель представления, управляемая состоянием, которая работает с SwiftUI. Я бы «представил» загрузчик поверх представления, когда мое состояние loading . Таким образом, загрузчик является основным элементом представления при каждом изменении состояния loading . Есть какие-нибудь идеи?

 struct ContentView: View { @ObservedObject var viewModel: MatchesListViewModel  var body: some View {  VStack {  switch viewModel.loadingState {  case .idle:  SwiftUISegmentedControl(isInitial: true)  case .loading:  SwiftUILoader()  case .success(let calendar):  Text("(calendar.first?.homeTeam?.name ?? "")")  Text("-")  Text("(calendar.first?.guestTeam?.name ?? "")")  case .failure(let error):  Text(error.localizedDescription)  }  }  .edgesIgnoringSafeArea(.vertical)  .onAppear {  DispatchQueue.main.asyncAfter(deadline: .now()   5, execute: {  viewModel.loadCalendar(forceNetwork: true)  })  } } }  

Комментарии:

1. В моем решении, в данном случае loading , SwiftUILoader() это единственный и уникальный элемент представления. Я хочу рассказать, как нарисовать загрузчик в текущем состоянии представления. В моем решении в представлении есть только загрузчик в loading состоянии, все остальное в success состоянии. Я хочу нарисовать загрузчик, не удаляя все остальное. Это более понятно?