Как увеличить ширину кнопки с помощью SwiftUI

Не могу понять, как изменить ширину кнопок в 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)
    }
}

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

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


person Jeremy McArthur    schedule 18.10.2019    source источник


Ответы (1)


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

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())
person LuLuGaGa    schedule 18.10.2019