Вам нужен модификатор .aspectRadio ():
public func aspectRatio(_ aspectRatio: CGFloat? = nil,
contentMode: ContentMode) -> some View
- Параметры:
- aspectRatio: отношение ширины к высоте, используемое для получения Посмотреть. Если
aspectRatio
равно nil
, результирующее представление сохраняет соотношение сторон этого представления. - contentMode: флаг, указывающий, должно ли это представление соответствовать или заполнять родительский контекст.
- Возвращает: представление, которое ограничивает размеры этого представления
aspectRatio
, используя contentMode
в качестве алгоритма масштабирования.
, если вы дадите ему явное aspectRatio
из 1,0, вы можете убедитесь, что он сохранит свою квадратную форму:
VStack {
Rectangle()
.aspectRatio(1.0, contentMode: .fit)
Spacer()
}