I'm tying to make a picker style that looks like this
以下是该主题的代码
@main
struct GreenPowerPlantUniversalApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.modifier(DarkModeViewModifier())
}
}
class AppThemeViewModel: ObservableObject {
@AppStorage("appThemeSetting") var appThemeSetting = Appearance.system
}
struct DarkModeViewModifier: ViewModifier {
@ObservedObject var appThemeViewModel: AppThemeViewModel = AppThemeViewModel()
public func body(content: Content) -> some View {
content
.preferredColorScheme((appThemeViewModel.appThemeSetting == .system) ? .none : appThemeViewModel.appThemeSetting == .light ? .light : .dark)
}
}
enum Appearance: String, CaseIterable, Identifiable {
case system
case light
case dark
var id: String { self.rawValue }
}
}
struct ThemeSettingsView: View {
@AppStorage("appThemeSetting") var appThemeSetting = GreenPowerPlantUniversalApp.Appearance.system
var body: some View {
VStack {
Picker("Appearance", selection: $appThemeSetting) {
ForEach(GreenPowerPlantUniversalApp.Appearance.allCases) { appearance in
Text(appearance.rawValue.capitalized)
.tag(appearance)
}
}
.pickerStyle(SegmentedPickerStyle())
}.padding(.bottom, 100)
.padding(.horizontal, 20)
}
}
我只是不知道从哪里开始创作,因为我还是个初学者 敬Swift .
我认为最好是做一个我不知道怎么做的Picker风格,但任何创造这个风格的东西都可以