Я могу создать кнопку полной ширины с помощью следующего кода:
Button {
print("Test, 123 ...")
}
label: {
Text("Trigger Action")
.frame(maxWidth: .infinity)
.frame(height: 50)
.background(Color.blue)
.foregroundStyle(Color.white)
.cornerRadius(12)
}
Он работает нормально.
Но почему «maxWidth: .infinity»?
Почему это не «minWidth: .infinity»? Для меня это имело бы больше смысла.
Может кто-нибудь объяснить, как работает модификатор .frame внутри? И почему это работает именно так
Как сказал Sweeper, конечно, если бы кнопка имела минимальную ширину, равную бесконечности, она была бы за пределами экрана, и вы бы не видели углы.
Хотя на практике все немного иначе. Я нашел это руководство весьма полезным: https://www.swiftuifieldguide.com/layout/flexible-frames/
Если бы кнопка действительно имела минимальную ширину «бесконечность», она бы не выглядела так, как на скриншоте. Эта кнопка имеет конечную ширину, которая меньше «бесконечности». Это просто проблема понимания английского языка?