如何在SwiftUI中实现GeometryReader到(Z/H/V)堆栈

如何在SwiftUI中实现GeometryReader到(Z/H/V)堆栈,swift,swiftui,Swift,Swiftui,无法为ZStack()实现GeometryReader。 以下是GeometryReader to Text()的实现示例: GeometryReader{geometry->中的文本 返回文本(“测试”) } 但当我尝试用ZStack(或矩形,或HStack)做同样的事情时,我看到了以下情况: GeometryReader{pr->HStack-in 返回HStack(){ 矩形() .foregroundColor(颜色:红色) } } 请检查此错误消息:GeometryReader为您

无法为ZStack()实现GeometryReader。 以下是GeometryReader to Text()的实现示例:

GeometryReader{geometry->中的文本
返回文本(“测试”)
}
但当我尝试用ZStack(或矩形,或HStack)做同样的事情时,我看到了以下情况:

GeometryReader{pr->HStack-in
返回HStack(){
矩形()
.foregroundColor(颜色:红色)
}
}

请检查此错误消息:

GeometryReader为您提供了一个变量,用于HStack/VStack等

GeometryReader { geo in
   HStack() {
       Rectangle()
          .foregroundColor(Color.red)
          .onTapGesture {
              print("width : \(geo.size.width), height : \(geo.size.height)")
           }
   }
}

不起作用的原因是您将该闭包的返回类型声明为
HStack
,但一旦添加前景色,返回的内容类似于
HStack

只需让编译器推断返回类型;去掉
->HStack
部分,它就会工作

还可以删除
return
关键字,在这个上下文中不需要它们