Как соответствовать протоколу ButtonStyle в SwiftUI? - PullRequest
0 голосов
/ 29 сентября 2019

Я хотел бы создать пользовательскую кнопку в SwiftUI, которую я хочу использовать в приложении.Кнопка представляет собой изображение, на которое можно кликнуть, без надписи.Я думал о создании собственного ButtonStyle для него.Хотя у меня есть проблемы с соответствием протоколу ButtonStyle, так как я не знаю, какой тип мне выбрать здесь.

Я уже пробовал some View или просто View для <#type>, но это не сработало.

struct customButtonStyle: ButtonStyle {
    typealias Body = <#type>
}

Сообщения об ошибках, которые я получаю при попытке использовать View или some View: Type 'customButtonStyle' does not conform to protocol 'ButtonStyle', и XCode просто добавляет эту строку typealias Body = <#type> снова.

Большое спасибозаранее за вашу помощь.

1 Ответ

1 голос
/ 29 сентября 2019

Вы определяете пользовательский стиль в функции makeBody.Вы можете использовать configuration.isPressed для настройки кнопки немного по-другому, когда она нажата.

struct MyButtonStyle: ButtonStyle {

    func makeBody(configuration: Configuration) -> some View {
        configuration.label
            // all of the modifiers you want to apply in your custom style e.g.:
            .foregroundColor(configuration.isPressed ? .red : .blue)
    }

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