SwiftUI - 制作适合浅色和深色模式的按钮

use*_*907 4 button swiftui

HStack(spacing: 15) {
        ForEach(0..<button.count, id: \.self) {button in
                Button(action: {
                    self.buttonContinue = button
                    
                }) {
                    Text("\(self.button[button])").padding(.vertical, 12.5)
                        .padding(.horizontal, 120)
                        .foregroundColor(.white)
                        .background(self.buttonContinue == button ? Color.black: Color.gray)
                    .clipShape(Capsule())}}

        }
Run Code Online (Sandbox Code Playgroud)

我已经使用此代码创建了一个继续按钮。在浅色模式下,颜色效果很好(从灰色背景和白色文本到黑色背景和白色文本),但是,当我切换到深色模式时,单击按钮时按钮的背景从灰色消失到没有。无论如何,我可以将按钮的背景更改为白色并使用深色模式(因为当我尝试过时,我只能更改文本颜色)?

Chr*_*isR 5

在您的情况下,您可以简单地执行以下操作:

                Text("Button \(button)")
                    .padding(.vertical, 12.5)
                    .padding(.horizontal, 120)
                    .foregroundStyle(.background)
                    .background(2 == button ? Color.primary: Color.secondary)
                    .clipShape(Capsule())
Run Code Online (Sandbox Code Playgroud)

或用于更多控制用途:

@Environment(\.colorScheme) var colorScheme

var textColor: Color {
    if colorScheme == .dark {
        return Color.white
    } else {
        return Color.black
    }
}
Run Code Online (Sandbox Code Playgroud)

或关注 @loremipsum 并在 Assets 中定义您自己的颜色