将SwiftUI ColorPicker限制为仅在亮/暗模式下工作的颜色

将SwiftUI ColorPicker限制为仅在亮/暗模式下工作的颜色,swiftui,uicolorpickerviewcontroller,Swiftui,Uicolorpickerviewcontroller,是否有办法将颜色选择器限制为仅显示在明暗模式下工作的颜色 现在我只知道默认的颜色选择器配置允许用户选择任何颜色: 不幸的是,ColorPicker还不能定制到那种程度。作为一种解决方法,这里有一个简单的颜色选择器,您可以通过在colors数组中定义所有所需的颜色来轻松自定义它 ColorPicker(以及相应的UIColorPickerViewController)现在没有提供这种功能。@Asperi啊,好的,谢谢我的理解,每个颜色都可以在暗模式或亮模式下显示。据我所知,您正在寻找系统支持暗/

是否有办法将
颜色选择器
限制为仅显示在明暗模式下工作的颜色

现在我只知道默认的
颜色选择器
配置允许用户选择任何颜色:


不幸的是,ColorPicker还不能定制到那种程度。作为一种解决方法,这里有一个简单的颜色选择器,您可以通过在
colors
数组中定义所有所需的颜色来轻松自定义它


ColorPicker(以及相应的UIColorPickerViewController)现在没有提供这种功能。@Asperi啊,好的,谢谢我的理解,每个颜色都可以在暗模式或亮模式下显示。据我所知,您正在寻找系统支持暗/光模式的颜色。是这样吗?
import SwiftUI

struct ContentView: View {
    var colors: [[UIColor]] = [
        [.red, .green, .blue],
        [.purple, .systemPink, .systemTeal],
        [.darkGray, .orange, .yellow]
    ]

    @State var selectedColor = UIColor.red

    var body: some View {
        VStack {
            colorPalette

            HStack(alignment: .center) {
                Text("Selected color:")

                Color(selectedColor)
                    .frame(width: 60, height: 60)
            }
        }
    }

    var colorPalette: some View {
        VStack(spacing: 0) {
            ForEach(colors, id: \.self) { colorRowColors in
                getColorRow(colors: colorRowColors)
            }
        }
    }

    func getColorRow(colors: [UIColor]) -> some View {
        HStack(spacing: 0) {
            ForEach(colors, id: \.self) { color in
                Button {
                    selectedColor = color
                } label: {
                    Color(color)
                        .border(Color.gray, width: color == selectedColor ? 2 : 0)
                }
            }
        }
    }
}