Swiftui 第十一个HStack(或其他UI组件)创建编译错误;传递给不带参数的调用的参数";

Swiftui 第十一个HStack(或其他UI组件)创建编译错误;传递给不带参数的调用的参数";,swiftui,swift5,Swiftui,Swift5,我正在用SwiftUI(Swift 5.1、XCode 11.2(11B52)、MacOS Catalina 10.15.1)创建一个应用程序。 当我在视图中添加组件时,在某个点上出现了一个错误。 为了确定原因,我简化了如下代码: import SwiftUI struct MainView: View { var body: some View { VStack { HStack { Text("Okay")

我正在用SwiftUI(Swift 5.1、XCode 11.2(11B52)、MacOS Catalina 10.15.1)创建一个应用程序。 当我在视图中添加组件时,在某个点上出现了一个错误。 为了确定原因,我简化了如下代码:

import SwiftUI

struct MainView: View {
    var body: some View {
        VStack {
            HStack {
                Text("Okay")
            }
            HStack {
                Text("Okay")
            }
            HStack {
                Text("Okay")
            }
            HStack {
                Text("Okay")
            }
            HStack {
                Text("Okay")
            }
            HStack {
                Text("Okay")
            }
            HStack {
                Text("Okay")
            }
            HStack {
                Text("Okay")
            }
            HStack {
                Text("Okay")
            }
            HStack {
                Text("Okay")
            }
            HStack {
                Text("Okay")
            }
        }
    }
}

struct MainView_Previews: PreviewProvider {
    static var previews: some View {
        MainView()
    }
}
然后,我在第一个HStack中得到一个错误,它说“传递给不带参数的调用的参数。”

如果我注释掉11个“HStack”中的一个,错误就消失了

我想知道发生了什么事。
谢谢,

您需要使用
组{…}

SwiftUI每个视图的限制为10个项目。您可以通过使用
来解决这个问题,因此如果您需要更多的项目。你把它们组合在一起。由于10个项目的限制,每个视图只能有10个组,但也可以将它们包含在
组中。不过,如果要使用嵌套组,最好重构代码并以不同的方式编写,或者使用
ForEach
,或者使代码更加组件化

struct MainView:View{
var body:一些观点{
VStack{
团体{
HStack{
文本(“好”)
}
HStack{
文本(“好”)
}
HStack{
文本(“好”)
}
HStack{
文本(“好”)
}
HStack{
文本(“好”)
}
HStack{
文本(“好”)
}
HStack{
文本(“好”)
}
HStack{
文本(“好”)
}
HStack{
文本(“好”)
}
HStack{
文本(“好”)
}
}
HStack{
文本(“好”)
}
}
}
}
HackingWithft有一篇精彩的文章解释了原因。你可以看到

这是因为SwiftUI的视图构建系统有各种代码,可以让我们添加1个视图、2个视图、3个视图或4、5、6、7、8、9和10个视图,但不能添加11个及以上的视图,这是行不通的


谢谢你的回答!添加“组{}”有效!这真的很棘手。。。