所以我正在尝试学习SwiftUI和Combine.我通常通过制作一个简单的小费计算器来开始新技术.
So I'm trying to learn SwiftUI and Combine. I usually start new tech by making a simple tip calculator.
我似乎得到了一个随机的通话中的额外参数".编码时出错这是我的SwiftUI文件
I seem to be getting a random "Extra argument in call." error while coding Here is my SwiftUI File
import SwiftUI internal enum ReceiptRowType { case subtotal case tax case total case tip case grandTotal } struct TipView: View { @ObservedObject internal var adBannerView: BannerAdView = BannerAdView() @ObservedObject internal var receiptViewModel: ReceiptViewModel private let percentageFormatter: NumberFormatter = { let f = NumberFormatter() f.numberStyle = .percent return f }() var body: some View { ZStack { Color.white .scaledToFit() VStack { if adBannerView.adHasLoaded { adBannerView .frame(maxHeight: adBannerView.adHeight) .animation(.easeInOut(duration: 2.0)) } BorderView() Text(ARCHLocalizedStrings.receipt) .foregroundColor(Color.gray) BorderView() HStack { Spacer() Button(action: { self.receiptViewModel.addNewReceiptItem() }) { Text(ARCHLocalizedStrings.buttonTitleAddItem) } } BorderView() ScrollView { ForEach(receiptViewModel.receiptItems) { receiptItem in ItemView(receiptItem: receiptItem) if receiptItem != self.receiptViewModel.receiptItems.last { Divider() } } } BorderView() BottomOfReceiptRow(receiptViewModel: receiptViewModel, type: ReceiptRowType.subtotal, title: ARCHLocalizedStrings.subtotal) BottomOfReceiptRow(receiptViewModel: receiptViewModel, type: ReceiptRowType.tax, title: ARCHLocalizedStrings.tax) } .padding(.horizontal, ARCHSwiftUILayoutConstants.defaultPaddingAndSpacing) } } } struct BorderView: View { var body: some View { Text("================================") .lineLimit(1) .foregroundColor(Color.gray) .minimumScaleFactor(0.5) } } struct ItemView: View { @ObservedObject var receiptItem: ReceiptItemViewModel var body: some View { HStack { TextField(receiptItem.name, text: $receiptItem.name) .textFieldStyle(RoundedBorderTextFieldStyle()) .foregroundColor(Color.gray) .multilineTextAlignment(TextAlignment.leading) TextField("Price", value: $receiptItem.price, formatter: ARCHUtilities.currencyFormatter) .textFieldStyle(RoundedBorderTextFieldStyle()) .foregroundColor(Color.gray) .multilineTextAlignment(TextAlignment.trailing) .minimumScaleFactor(0.5) .frame(width: ARCHSwiftUILayoutConstants.widthForCurrency) } } } struct BottomOfReceiptRow: View { @ObservedObject internal var receiptViewModel: ReceiptViewModel internal var type: ReceiptRowType internal var title: String var body: some View { HStack { Spacer() Text(title) .foregroundColor(Color.gray) if type == ReceiptRowType.subtotal { Text("\(receiptViewModel.subtotal)") .foregroundColor(Color.gray) .frame(width: ARCHSwiftUILayoutConstants.widthForCurrency) } else if type == ReceiptRowType.tax { Text("\(receiptViewModel.taxRate)") .foregroundColor(Color.gray) .frame(width: ARCHSwiftUILayoutConstants.widthForCurrency) } else if type == ReceiptRowType.total { Text("\(receiptViewModel.total)") .foregroundColor(Color.gray) .frame(width: ARCHSwiftUILayoutConstants.widthForCurrency) } else if type == ReceiptRowType.tip { } else if type == ReceiptRowType.grandTotal { Text("\(receiptViewModel.grandTotal)") .foregroundColor(Color.gray) .frame(width: ARCHSwiftUILayoutConstants.widthForCurrency) } } } } struct TipView_Previews: PreviewProvider { static var previews: some View { TipView(receiptViewModel: ReceiptViewModel()) } }但是,如果我在TipView主体上添加另一个视图(任何视图),我似乎会收到调用中的额外参数"错误.
However, if I add another view on the TipView body (Any View) I seem to get a "Extra argument in call" error.
此处的错误图片
有人知道发生了什么吗?
Does anyone know what's going on?
推荐答案尝试围绕您的视图创建一个组{}.Swiftui只允许10个...与组一起可以添加更多.或使用子视图...(也将是更简洁的代码)
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)
更多推荐
SwiftUI:随机的“通话中的其他参数"错误
发布评论