Я хотел бы спросить, какова рекомендация Apple по использованию модификаторов и созданию многоразового представления на SwiftUI. Например, мы можем использовать buttonStyle и наследовать его, чтобы создать собственный стиль для кнопки, а также мы можем создать настраиваемое многоразовое представление для той же цели. ,
вот пример кода
/*
this is the style for a gradient button
*/
struct GradientButtonStyle: ButtonStyle {
func makeBody(configuration: Self.Configuration) -> some View {
configuration.label
.foregroundColor(Color.white)
.padding()
.background(LinearGradient(gradient: Gradient(colors: [Color.red, Color.orange]), startPoint: .leading, endPoint: .trailing))
.cornerRadius(15.0)
}
}
/*
and here we declare it
*/
Button(action: {
print("Button action")
}) {
HStack {
Image(systemName: "bookmark.fill")
Text("Bookmark")
}
}.buttonStyle(GradientButtonStyle())
и мы можем использовать этот способ
struct ButtonView: View {
let Action: () -> Void
var title = "Title"
var body: some View {
HStack {
Image(systemName: "bookmark.fill")
Text(self.title)
}.onTapGesture {
Action()
}
.foregroundColor(Color.white)
.padding()
.background(LinearGradient(gradient: Gradient(colors: [Color.red, Color.orange]), startPoint: .leading, endPoint: .trailing))
.cornerRadius(15.0)
}
}