1. ViewModifier 视图修饰符
1.1 创建默认按钮视图修饰符 ViewModifierBootcamp.swift
struct DefaultButtonViewModifier: ViewModifier{
let bcakgroundColor: Color
func body(content: Content) -> some View {
.frame(maxWidth: .infinity)
.background(bcakgroundColor)
func withDefaultButtonFormatting(backgroundColor: Color = .blue) -> some View{
modifier(DefaultButtonViewModifier(bcakgroundColor: backgroundColor))
struct ViewModifierBootcamp: View {
.withDefaultButtonFormatting(backgroundColor: .orange)
.withDefaultButtonFormatting()
.withDefaultButtonFormatting(backgroundColor: .red)
struct ViewModifierBootcamp_Previews: PreviewProvider {
static var previews: some View {
1.2 效果图:

2. ButtonStyle 自定义按钮样式
2.1 创建按下按钮样式,ButtonStyleBootcamp.swift
struct PressableButtonStyle: ButtonStyle{
let scaledAmount: CGFloat
init(scaledAmount: CGFloat) {
self.scaledAmount = scaledAmount
func makeBody(configuration: Configuration) -> some View {
.scaleEffect(configuration.isPressed ? scaledAmount : 1.0)
.opacity(configuration.isPressed ? 0.86 : 1)
func withPressableStyle(scaledAmount: CGFloat = 0.9) -> some View{
buttonStyle(PressableButtonStyle(scaledAmount: scaledAmount))
struct ButtonStyleBootcamp: View {
.withDefaultButtonFormatting()
.withPressableStyle(scaledAmount: 0.86)
struct ButtonStyleBootcamp_Previews: PreviewProvider {
static var previews: some View {
2.2 效果图:
