Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么我的自定义视图试图占用VStack中所有可用的垂直空间?_Ios_Swift_Swiftui - Fatal编程技术网

Ios 为什么我的自定义视图试图占用VStack中所有可用的垂直空间?

Ios 为什么我的自定义视图试图占用VStack中所有可用的垂直空间?,ios,swift,swiftui,Ios,Swift,Swiftui,我刚接触SwiftUI,遇到了一个非常令人不安的问题 我已经创建了一些自定义视图,这些视图在预览中以正确的高度显示。当我尝试将它们添加到VStack中时,它们的行为与我设置.frame(minHeight:0,maxHeight:.infinity)类似。在自定义视图之后,在VStack内添加一个Spacer()并不能解决此问题 我事先不知道这些视图的大小,因此无法设置固定的帧大小,是否可以采取措施防止这种行为?我甚至想过计算它们的内容大小并相应地应用固定大小,但这听起来像是开发人员的噩梦:|

我刚接触SwiftUI,遇到了一个非常令人不安的问题

我已经创建了一些自定义视图,这些视图在预览中以正确的高度显示。当我尝试将它们添加到VStack中时,它们的行为与我设置
.frame(minHeight:0,maxHeight:.infinity)
类似。在自定义视图之后,在
VStack
内添加一个
Spacer()
并不能解决此问题

我事先不知道这些视图的大小,因此无法设置固定的帧大小,是否可以采取措施防止这种行为?我甚至想过计算它们的内容大小并相应地应用固定大小,但这听起来像是开发人员的噩梦:|

感谢您的阅读和帮助

编辑:引发问题的最简单代码:

VStack {
  ChipGroup(chips: [
    Chip(titleKey: "Chip"),
    Chip(titleKey: "Chip"),
    Chip(titleKey: "Chip"),
    Chip(titleKey: "Chip"),
    Chip(titleKey: "Chip"),
    Chip(titleKey: "Chip"),
    Chip(titleKey: "Chip")
  ])
  Spacer()
}

芯片和芯片组基于以下教程:

GeometryReader是芯片组的根视图。GeometryReader总是占据尽可能多的空间,尽可能地扩展


如果您不希望视图占用所有空间,则需要去掉GeometryReader,除非您希望设置固定高度,您特别提到要避免设置固定高度。这就是GeometryReader的工作原理。

显示您的代码。您是对的,我已将GeometryReader从视图中删除,现在它工作得很好,非常感谢!!!