В настоящее время я могу заставить ячейки суммировать их общее количество в ячейке нижнего колонтитула разделов. Но он вычисляет общее количество для каждой ячейки, независимо от того, в каком разделе она находится, внутри нижнего колонтитула всех разделов.
Я до сих пор не могу заставить его суммировать разные цены (Price1-3) для ячеек, в которых выбраны разные цены, переданные в него Раздел
код, который я использую для суммирования суммы в CartFooter для ячеек в разделах cartFooter.cartTotal.text = "\(String(cart.map{$0.cartItems.price1}.reduce(0.0, +)))"
РАНЕЕ:
я пытаюсь получить ячейки в каждом разделе, чтобы добавить их общее количество в ячейку нижнего колонтитула для каждого раздела, в котором они находятся.
Данные в CartVC заполняются из другого VC (HomeVC). Вот почему в CartCell есть 3 разных варианта цены, когда данные заполняют ячейки.
Просто застрял на том, как я мог бы получить общее количество в нижнем колонтитуле для ячеек в разделе
Добавление конкретных данных для каждого раздела в UITableView — Swift
Заранее спасибо, Ваша помощь очень ценится
extension CartViewController: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return brands
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let brand = brands[section]
return groupedCartItems[brand]!.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cartCell = tableView.dequeueReusableCell(withIdentifier: "CartCell") as! CartCell
let brand = brands[indexPath.section]
let cartItemsToDisplay = groupedCartItems[brand]![indexPath.row]
cartCell.configure(withCartItems: cartItemsToDisplay.cartItems)
return cartCell
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let cartHeader = tableView.dequeueReusableCell(withIdentifier: "CartHeader") as! CartHeader
let headerTitle = brands[section]
cartHeader.brandName.text = "Brand: \(headerTitle)"
return cartHeader
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let cartFooter = tableView.dequeueReusableCell(withIdentifier: "FooterCell") as! FooterCell
let sectionTotal = cart[section].getSectionTotal()
let calculate = String(cart.map{$0.cartItems.price1}.reduce(0.0, +))
cartFooter.cartTotal.text = "$\(calculate)"
return cartFooter
}
}
Обновление: это результаты, которые я получаю, используя это в CartFooter.
let calculate = String(cart.map{$0.cart.price1}.reduce(0.0, +))
cartFooter.cartTotal.text = "$\(calculate)"
который вычисляет общую сумму (OT) для всех разделов и помещает OT во все ячейки нижнего колонтитула (как показано ниже ▼), когда я пытаюсь получить общую сумму для каждого раздела в своих нижних колонтитулах (как показано на изображении выше ▲ справа)
Обновление 2:
это то, что я добавил в свой cellForRowAt
, чтобы итоговые суммы складывались в нижний колонтитул раздела. он суммирует данные для ячеек, но не дает точной суммы в нижнем колонтитуле
var totalSum: Float = 0
for eachProduct in cartItems{
productPricesArray.append(eachProduct.cartItem.price1)
productPricesArray.append(eachProduct.cartItem.price2)
productPricesArray.append(eachProduct.cartItem.price3)
totalSum = productPricesArray.reduce(0, +)
cartFooter.cartTotal.text = String(totalSum)
}