Какова рекомендация Apple для создания компонента и использования модификаторов в SwiftUI - PullRequest
0 голосов
/ 17 апреля 2020

Я хотел бы спросить, какова рекомендация 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)
    }
}

1 Ответ

0 голосов
/ 17 апреля 2020

В частности, в случае Button следует использовать Button со стилем, если это возможно, а не переопределять его с нуля. Когда вы используете Button, система доступности знает, что это кнопка. Когда вы реализуете его с нуля, система доступности не знает, что это такое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...