Пожалуйста, посмотрите на следующий код и скажите мне это. 1. Есть ли лучший способ реализовать эту функциональность? 2. Я знаю, AnyView влияет на производительность, но если нет лучшего способа применить SRP , стоит ли влияние на производительность того?
struct ContentView: View {
@ObservedObject var viewPicker = ViewPicker()
var body: some View {
VStack {
Picker("View Picker", selection: $viewPicker.selectionIndex) {
Text("Days").tag(0)
Text("Months").tag(1)
Text("Years").tag(2)
}
.pickerStyle(SegmentedPickerStyle())
viewPicker.pick()
}
}
}
struct DayView: View {
var body: some View { Text("Day View") }
}
struct MonthView: View {
var body: some View { Text("Month View") }
}
struct YearView: View {
var body: some View { Text("Year View") }
}
//MARK:- View Picker
class ViewPicker: ObservableObject {
@Published var selectionIndex = 0
func pick() -> AnyView {
switch selectionIndex {
case 0:
return AnyView(DayView())
case 1:
return AnyView(MonthView())
case 2:
return AnyView(YearView())
default:
return AnyView(Text("Unknown"))
}
}
}