SWIFTUI Как зафиксировать высоту VStack с помощью геометрии (после отображения VStack)?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 SWIFTUI Как зафиксировать высоту VStack с помощью геометрии (после отображения VStack)?

Сообщение Anonymous »

Я хотел бы попросить вас о помощи. Я пытаюсь захватить высоту VStack, используя геометрию, а затем на основе этого значения высоты VStack вычислить высоту его дочернего элемента (внутри VStack).

Изображение моего текущего представления VStack

Я использовал .frame вне VStack, чтобы заполнить весь экран. Затем я использовал .border, чтобы визуально проверить, действительно ли он заполняет экран (работает нормально)

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

.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: Alignment.topLeading)
Проблему можно увидеть внутри VStack, высота отображается как GCFloat 734. Несмотря на то, что размер границы намного больше.

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

struct BodyView: View {
@State var stackHeight : CGFloat = 0

var body: some View {
GeometryReader { geometry in
VStack {
Text("VStack size: \(self.stackHeight)")
.bold()
.frame(maxWidth: .infinity, alignment: .leading)
.padding(.horizontal)
.background(Color.green)

}
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: Alignment.topLeading)
.onAppear{
self.stackHeight = geometry.size.height
}
.border(Color.purple, width: 5)
}
}
}

struct BodyView_Previews: PreviewProvider {
static var previews: some View {
BodyView()
}
}
Как я могу получить фактический размер VStack после завершения загрузки?

Когда я запускаю (onAppear), высота VStack отображается правильно, однако мне нужно, чтобы он был захвачен мгновенно.

Подробнее здесь: https://stackoverflow.com/questions/609 ... as-display
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • SWIFTUI Как зафиксировать высоту VStack с помощью геометрии (после отображения VStack)?
    Anonymous » » в форуме IOS
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • Импорт типа геометрии Postgis в Python в виде геометрии от Shapely?
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как сделать VStack кликабельным для отображения предупреждений в SwiftUI
    Anonymous » » в форуме IOS
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous
  • Зафиксировать местоположение touchDown onLongPressGesture в SwiftUI?
    Anonymous » » в форуме IOS
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Нежелательный эффект кроссфейда в эффекте согласованной геометрии SwiftUI
    Anonymous » » в форуме IOS
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous

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