Я не уверен, есть ли метод .fill
, аналогичный UIStackView
, но, если вы хотите сделать, это предоставить некоторый интервал для Button
(или любое представление в этом отношении), что сработало для меня,либо установив frame
или padding
.frame(width: 300, alignment: .center)
(здесь мы также можем установить высоту, но, если нет, она сможет выводить высоту на основе текста кнопки.
Если вы не хотите устанавливать произвольную ширину, вы также можете import UIKit
и использовать UIScreen
и получить устройства на полную ширину. (Возможно, SwiftUI может получить это, но не нашел егов это время еще)
.frame(width: UIScreen.main.bounds.width, alignment: .center)
и затем вы можете добавить немного отступов для некоторой передышки
.padding(.all, 20)
Проблема с заполнением заключается в том, чтоэто добавит к дополнительной ширине экрана, поэтому мы должны учитывать это при установке ширины.
(20 * 2 стороны от начала и конца)
.frame(width: UIScreen.main.bounds.width - 40, alignment: .center)
(дыханиеномер предназначен для случаев, когда текст охватывает конец экрана или если ваше выравнивание равно .leading
или .trailing
)