SwiftUI ButtonStyleを作成する
角丸ラインのみボタンを作成する。
ViewModifierでやっていたのを、ButtonStyleに変更する。
Style Example
ViewModifier:ButtonDesignModifier
ButtonStyle:RoundedRectangleButtonStyle
Use Example
Button("+1 month", action: {
})
.buttonStyle(RoundedRectangleButtonStyle(adjust: 4.0))
Button("+3 month", action: {
})
.modifier(ButtonDesignModifier(adjust: 4.0))
ViewModifier & ButtonStyle Code
import Foundation
import SwiftUICore
import SwiftUI
struct ButtonDesignModifier: ViewModifier {
    var adjust: CGFloat = 0.0
    
    func body(content: Content) -> some View {
        return content
            .padding(EdgeInsets(top: 8.0 - self.adjust,
                                leading: 16.0 - self.adjust,
                                bottom: 8.0 - self.adjust,
                                trailing: 16.0 - self.adjust))
            .overlay {
                RoundedRectangle(cornerRadius: 8)
                    .stroke(Color.blue, lineWidth: 1)
            }
    }
}
struct RoundedRectangleButtonStyle: ButtonStyle {
    typealias Body = Button
    var adjust: CGFloat = 0.0
    func makeBody(configuration: Configuration) -> some View {
        configuration
            .label
            .foregroundColor(.blue)
            .padding(EdgeInsets(top: 8.0 - self.adjust,
                                leading: 16.0 - self.adjust,
                                bottom: 8.0 - self.adjust,
                                trailing: 16.0 - self.adjust))
            .overlay {
                RoundedRectangle(cornerRadius: 8)
                    .stroke(Color.blue, lineWidth: 1)
            }
    }
}





