Как увеличить ширину кнопки с помощью SwiftUI - PullRequest
0 голосов
/ 19 октября 2019

Я не могу понять, как изменить ширину кнопок в SwiftUI.

Я уже пытался: использовать .frame (minWidth: 0, maxWidth: .infinity), используя Spacer () вокруг кнопки иНавигационная ссылка, используя фрейм в поле «Текст» и отступы на кнопке, просматривает документацию, а также некоторые другие вещи, которые я обнаружил при простом поиске в Интернете. Однако ничто не меняет ширину кнопок.

NavigationLink(destination: Home(), isActive: self.$isActive) { Text("") }
Button(action: { self.isActive = true }) { LoginBtn() }

struct LoginBtn: View {
    var body: some View {
        Text("Login")
            .fontWeight(.bold)
            .padding()
            .foregroundColor(Color.white)
            .background(Color.orange)
            .cornerRadius(5.0)
    }
}

Фотография текущей кнопки

Я бы хотел, чтобы кнопка расширялась, чтобы быть похожей на ширину используемых текстовых полей. Опять же, я знаю, что были опубликованы ответы, но по какой-то причине я не могу заставить свой работать. Спасибо!

1 Ответ

0 голосов
/ 19 октября 2019

Объявите свой собственный стиль кнопки:

struct WideOrangeButton: ButtonStyle {

    func makeBody(configuration: Configuration) -> some View {
        configuration.label
            .padding()
            .frame(minWidth: 0,
                   maxWidth: .infinity)
            .foregroundColor(.white)
            .padding()
            .background( RoundedRectangle(cornerRadius: 5.0).fill(Color.orange)
        )
    }
}

и затем используйте его следующим образом:

Button(action: { self.isActive = true }) {
        Text("Login")
           .fontWeight(.bold)
    }   .buttonStyle(WideOrangeButton())
...