Xcode Can';不要添加超过10个项目以查看SwiftUI

Xcode Can';不要添加超过10个项目以查看SwiftUI,xcode,swiftui,Xcode,Swiftui,我正在完成一个需要用户数据输入字段的应用程序。我使用少量数据元素对其进行建模,以简化开发过程。今天我尝试添加其他元素,但惊讶地发现一个视图只能添加10个视图。所以我尝试了最简单的设计(如下)。如果我在视图中添加了11个“东西”,它会立即在最上面的项上显示错误,不管它是什么: “传递给不带参数的调用的参数” 不管我是将外部容器称为ScrollView、VStack、List还是Form。同样的行为。文本/文本字段子单元是否在VStack中并不重要 因此,我回到了基础-刚刚添加了十个文本视图。没问题

我正在完成一个需要用户数据输入字段的应用程序。我使用少量数据元素对其进行建模,以简化开发过程。今天我尝试添加其他元素,但惊讶地发现一个视图只能添加10个视图。所以我尝试了最简单的设计(如下)。如果我在视图中添加了11个“东西”,它会立即在最上面的项上显示错误,不管它是什么:

“传递给不带参数的调用的参数”

不管我是将外部容器称为ScrollView、VStack、List还是Form。同样的行为。文本/文本字段子单元是否在VStack中并不重要

因此,我回到了基础-刚刚添加了十个文本视图。没问题。加上第十一个,它就爆炸了。这里有一个变体——但我所需要做的就是添加10个简单的文本视图,让它崩溃

我一定错过了一些基本的东西。我检查了xcode2的更新版本,但我有11.2beta2版(11B44),这是最新版本

@State private var textField1: String = "Pass to the ListCell"
@State private var textField2: String = "2"
//more of these


var body: some View {

    NavigationView {
        VStack {

            //extract the VStack and create a separate struct
            ListCell(tfString: textField1)

            VStack {
                Text("Text Field")
                TextField("Placeholder", text: $textField2)
                    .textFieldStyle(RoundedBorderTextFieldStyle())
                    .padding()
            }

            VStack {
                Text("Text Field")
                TextField("Placeholder", text: $textField3)
                    .textFieldStyle(RoundedBorderTextFieldStyle())
                    .padding()
            }

            //more of the above VStacks

            Text("6")
            Text("7")
            Text("8")
            Text("9")
            Text("10")
            //Spacer()
            //Text("11")
        }
    }
}

任何指导都将不胜感激。

使用
组{…}


SwiftUI中的
ViewBuilder
s将0到10个元素放入其初始值设定项中,除此之外,您必须开始使用
Group
VStack
HStack
列表
ForEach
等对它们进行分组

最好的方法是开始提取几个属于不同视图的元素,例如:

struct FormCell: View {

    @Binding var inputString: String

    var body: some View {
        VStack {
            Text("Text Field")
            TextField("Placeholder", text: $inputString)
                .textFieldStyle(RoundedBorderTextFieldStyle())
                .padding()
        }
    }
}

接下来,如果您有一些,您可以按照人们的建议,使用
ForEach
List
VStack
对它们进行分组

但是,您可以扩展
ViewBuilder
,以生成10个以上视图的构建器。我写了一篇文章,带你浏览一下


只是为了好玩,这才是真正的原因:非常有趣。一本好书。
struct FormCell: View {

    @Binding var inputString: String

    var body: some View {
        VStack {
            Text("Text Field")
            TextField("Placeholder", text: $inputString)
                .textFieldStyle(RoundedBorderTextFieldStyle())
                .padding()
        }
    }
}