Как заставить кнопки виджета SwiftUI заполнять высоту контейнера при использовании GeometryReader с рассчитанной высотойIOS

Программируем под IOS
Ответить
Anonymous
 Как заставить кнопки виджета SwiftUI заполнять высоту контейнера при использовании GeometryReader с рассчитанной высотой

Сообщение Anonymous »

Я создаю виджет iOS (WidgetKit) с сеткой кнопок 2×2, используя GeometryReader для расчета высоты строк. Кнопки должны полностью заполнять свои
контейнеры и иметь одинаковую высоту, как виджет Apple Shortcuts.
Ожидаемый результат:
Все кнопки должны иметь одинаковую высоту и равномерно заполнять доступное пространство, например:
Изображение

Фактический результат:
Фоны кнопок не заполняют расчетную высоту контейнера. Сами контейнеры равны (проверено по границам отладки
, показаны высотой 44 pt), но содержимое/фон кнопки не дотягивает:

Текущий Реализация:
Использование GeometryReader для вычисления cellHeight, а затем применение его с помощью .frame(height: cellHeight):

Код: Выделить всё

GeometryReader { geo in
let cellHeight = (geo.size.height - totalSpacing - totalPadding) / 2

VStack(spacing: 8) {
ForEach(0..

Подробнее здесь: [url]https://stackoverflow.com/questions/79785623/how-to-make-swiftui-widget-buttons-fill-their-container-height-when-using-geomet[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»