📜  按钮颜色 swiftui - Swift (1)

📅  最后修改于: 2023-12-03 15:10:09.780000             🧑  作者: Mango

在 SwiftUI 中修改按钮颜色

在 SwiftUI 中,我们可以通过修改 buttonStyle() 方法中的参数来修改按钮的外观,包括按钮颜色。下面我们将介绍两种方式来实现这个目标。

方式一:使用系统提供的颜色

SwiftUI 中提供了许多系统的颜色,可以直接使用。下面的代码展示了如何使用系统颜色来设置按钮的颜色:

Button("Confirm") {
    // handling action
}
.buttonStyle(.borderedProminent)
.foregroundColor(.white)
.background(Color.blue)

在上面的代码中,我们用 background() 方法来设置按钮的背景颜色为系统蓝色,用 foregroundColor() 方法来设置按钮的前景颜色为白色。

方式二:自定义按钮颜色

如果我们想要使用自己的颜色来设置按钮的颜色,我们需要自定义一个按钮样式。下面的代码展示了如何自定义一个按钮样式并设置其颜色:

struct CustomButtonStyle: ButtonStyle {
    var color: Color
    
    func makeBody(configuration: Configuration) -> some View {
        configuration.label
            .foregroundColor(.white)
            .padding()
            .background(RoundedRectangle(cornerRadius: 10).fill(color))
            .scaleEffect(configuration.isPressed ? 0.95 : 1.0)
    }
}

Button("Confirm") {
    // handling action
}
.buttonStyle(CustomButtonStyle(color: Color.red))

在上面的代码中,我们定义了一个 CustomButtonStyle 结构体,并实现了 ButtonStyle 协议。在 makeBody() 方法中,我们对按钮的标签进行了一些设置,包括颜色、边距和圆角等。接着,我们用 configuration.isPressed 保持按钮按下时有缩小的效果。

最后我们可以通过 CustomButtonStylecolor 属性来自定义按钮的颜色,示例中使用了红色。

以上两种方式都可以自定义 SwiftUI 中的按钮颜色,我们可以根据自己的需要来选择,达到想要的按钮外观效果。