带有框架maxHeight和.infinity的SwiftUI视图布局

时间:2019-11-29 16:54:11

标签: layout frame swiftui

如何在SwiftUI中以这种方式布局视图

  1. 我有一些要扩展以填充可用空间的输入字段
  2. 此输入以我给他们DELETE
  3. 的方式放置在 VStack
  4. VStack 位于带有frame(height: 40)
  5. 的白框内

最后一个白框并未针对 VStack 的输入数量进行调整,而是占用了 0.8空间,然后此输入分散在了 VStack 中相反,strong>(添加了比所需更多的间距。

我不明白为什么会这样。

frame(maxHeight: geometry.size.height * 0.8)

表单视图包含:

FormView()
     .frame(
       maxWidth: geometry.size.width * 0.85,
        maxHeight: geometry.size.height*0.85
)

1 个答案:

答案 0 :(得分:0)

我发现了有时View(布局)不会折叠以占用尽可能小的空间,而是扩展到maxHeigh / maxWidth的原因。

它发生在我们之间的某个地方

GeometryReader { geometry in

    VStack { ... }

}

然后,这些视图不会折叠并散布到maxHeight。我在.avoidKeyboard(tag: 0)

中使用了这个GeometryReader