Extra arguments at positions #11, #12 in call SwiftUI
ViewBuilder supports only no more than 10 static views in one container... that's a reason of your error
Just group them
Group {
TextField("Class 1-1", text: $class11)
TextField("Class 1-2", text: $class12)
TextField("Class 1-3", text: $class13)
TextField("Class 1-4", text: $class14)
TextField("Class 2-1", text: $class21)
TextField("Class 2-2", text: $class22)
TextField("Class 2-3", text: $class23)
TextField("Class 2-4", text: $class24)
}
backup
SwiftUI: Random Extra argument in call error
try making a Group { } around your views. just 10 are allowed in Swiftui...with group you can add more. or use subviews...(would be cleaner code too)
Extra argument in call when I call struct 11 times but not 10 times or lower
The closure that HStack
(and many other views) accept is a kind of function builder called ViewBuilder
. It only supports up to 10 View
s as arguments. These are all hardcoded in the SwiftUI module:
static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7, C8, C9>(_ c0: C0, _ c1: C1, _ c2: C2, _ c3: C3, _ c4: C4, _ c5: C5, _ c6: C6, _ c7: C7, _ c8: C8, _ c9: C9) -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7, C8, C9)> where C0 : View, C1 : View, C2 : View, C3 : View, C4 : View, C5 : View, C6 : View, C7 : View, C8 : View, C9 : View
The designers could hardcode more, but decided not to. This is probably because you can simplify your view's code to not need to put that many views in a view builder.
In this case, you can use a ForEach
:
HStack {
ForEach(0..<11) { i in
BarView(barGradeValue: i, barSendValue: i < 6 ? (i + 1) * 10 : (11 - i) * 10, barFlashValue: 10)
}
}
How to add multiple buttons inside a singular VStack in a View (Xcode12, SwiftUI)
It is so easy, let see what error say: Exact error message: Extra arguments at positions #11, #12, #13 in call
It says extra arguments! maximum number of arguments are 10 in SwiftUI, we should use Group
for this, like this:
struct HomeView: View {
@Binding var page: Pages
var drink = Drink.AllDrinks
var body: some View {
VStack {
Group { // <<: Here!
drink[0].image
.resizable()
.frame(width:80, height: 80)
Text(drink[0].name)
Button(action: {page = Pages.Home}) {
OrderButtonContent()
}
Spacer()
.frame(height: 35)
drink[1].image
.resizable()
.frame(width: 80, height: 80)
Text(drink[1].name)
Button(action: {page = Pages.Home}) {
OrderButtonContent()
}
}
Group { // <<: Here!
drink[2].image
.resizable()
.frame(width: 80, height: 80)
Text(drink[2].name)
Button(action: {page = Pages.Home}) {
OrderButtonContent()
}
drink[7].image
.resizable()
.frame(width: 80, height: 80)
Text(drink[7].name)
Button(action: {page = Pages.Home}) {
OrderButtonContent()
}
}
}
}
}
SwiftUI Problem! Extra argument in call
If it is not copy-paste, then the error is
Button("10") {
let selectionFeedback = UISelectionFeedbackGenerator()
selectionFeedback.selectionChanged()
self.show2010.toggle()
}
.buttonStyle(YearRoundedButton())
_10L() // << here !!
If looks like (based on common patten) you missed .sheet here.
I can't get my LazyVGrid to show more than two rows
You've got into ViewBuilder
10-views-limit... so as you use static content then you have to wrap some in Group
/s to fit that rule (ie. no more than 10 views in build block)
So, like
var body: some View {
LazyVGrid(columns: columns, spacing: 8) {
Group {
Text("Buttons").font(.headline)
Text("resting").font(.subheadline)
Text("active").font(.subheadline)
Text("loading").font(.subheadline)
Text("disabled").font(.subheadline)
}
Group {
Text("1").font(.headline)
Text("2").font(.subheadline)
Text("3").font(.subheadline)
Text("4").font(.subheadline)
Text("5").font(.subheadline)
Text("6").font(.headline)
Text("7").font(.subheadline)
Text("8").font(.subheadline)
Text("9").font(.subheadline)
Text("10").font(.subheadline)
}
Group {
... other code
}
}.padding(.horizontal, 10)
}
Note: Group
is also view, so there should be no more than 10 groups as well... but groups can contain other groups...
But... of course it is preferable to work with dynamic content, like ForEach
, just in case.
Can't Add More Than 10 Items to View SwiftUI
Use Group {...}
https://developer.apple.com/documentation/swiftui/group
var body: some View {
NavigationView {
VStack {
//extract the VStack and create a separate struct
ListCell(tfString: textField1)
Group {
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
Group {
Text("6")
Text("7")
Text("8")
Text("9")
Text("10")
}
//Spacer()
//Text("11")
}
}
}
Related Topics
Get Class Name of Object as String in Swift
How to Use Swift'S Codable to Encode into a Dictionary
When Are Argument Labels Required in Swift
Nsdate Timeintervalsince1970 Not Working in Swift
Swift Optional Escaping Closure Parameter
How to Change the Textual Representation Displayed For a Type in Swift
Get HTML from Wkwebview in Swift
Accessing Code in Swift 3 Error
In Swift 4, How to Remove a Block-Based Kvo Observer
Any Reason Not Use Use a Singleton "Variable" in Swift
"Classname Has No Member Functionname" When Adding Uibutton Target
How to Create a Reference Cycle Using Dispatchqueues
Difference Between Functions and Closures
How to Avoid Force Unwrapping a Variable
What Sorting Algorithm Does Swift Implement For Its Standard Library