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