#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
состоянии. Я хочу нарисовать загрузчик, не удаляя все остальное. Это более понятно?