如何将两个(或更多)tableViewCells 添加在一起以形成“总数”

Posted

技术标签:

【中文标题】如何将两个(或更多)tableViewCells 添加在一起以形成“总数”【英文标题】:How to add two (or more) tableViewCells together to make a 'total' 【发布时间】:2018-07-13 16:20:16 【问题描述】:

我有一个表格视图,其中包含单元格中商品的价格和数量,我想将它们加在一起,所以如果有多个商品 - 它会显示总数。

这是我的cellForRowAt

detailCell.priceCostLabel.text = sortedPriceDictionary[indexPath.row]
detailCell.quantityLabel.text = String(sortedQuantityDictionary[indexPath.row])

let totalPrice = (Double(sortedPriceDictionary[indexPath.row])! * Double(sortedQuantityDictionary[indexPath.row]))
print("The total price is \(totalPrice)")

只要打印每种产品的正确价格以及每种产品的数量,这就是有效的,但如果有 2 或 3 个单元格,它正在打印(例如)

The total price is 3.9
The total price is 20.7

我会创建一个 totalPrice(s) 数组并执行 arrayOfPrices[0] + arrayOfPrices[1] 吗?然后我又怎么知道我需要添加多少个单元格?提前致谢。

【问题讨论】:

你描述的代码不属于cellForRowAt。表格视图中的每个单元格都会调用该函数。在我看来,您想要的是设置一个部分页脚单元格,并在该单元格中显示该部分中所有项目的价格值的总和。 我希望总价出现在视图的标签中(因为 tableView 只占视图的 1/2)所以我想要的只是总价,我可以将其添加到标签,而不是底部的单元格,如果有意义的话? 好的,那你为什么要对表格视图做任何事情呢?在您的 viewDidAppear 中编写代码,循环遍历您的数据模型,将价格相加,并将总价显示到视图中。 因为 tableView 中显示了不同的产品、数量和价格,都在不同的单元格中,因为它们不同,我想要所有单元格的总价格组合 这毫无意义。 【参考方案1】:

您正在尝试做的事情有点不寻常。在模型-视图-控制器的世界中,我希望您尝试添加的价格列表将是模型。如果您要对这些价格进行任何计算,那么您会将其作为模型的一部分进行。该模型会知道它存储了多少价格,并知道如何将它们相加。

TableView 只是将模型中的值放在屏幕上的一种方式。您可以根据模型的需要创建尽可能多的 tableViewCells,并且 MVC 三元组的所有“视图”部分都会显示它们,您实际上不会对这些单元格中的值执行计算,它们只是为了显示。

我建议您阅读有关 MVC 模式的更多信息,并更好地了解 TableView 的作用。你可以从苹果的描述开始:

https://developer.apple.com/library/archive/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html

当您单击该链接时,它会告诉您该文档页面已被弃用。没关系。还是读吧。谷歌搜索 MVC 或模型视图控制器将提供丰富的集合链接,以帮助您了解模式,并希望您的问题和解决方案。

【讨论】:

以上是关于如何将两个(或更多)tableViewCells 添加在一起以形成“总数”的主要内容,如果未能解决你的问题,请参考以下文章

如何将 viewController 中的数据分配给 tableViewCell 标签?

单击 TableViewCell 以打开当前用户的配置文件视图

当用户滚动到最后一个 tableViewCell 时执行操作

iPhone 加载更多 tableViewCell

将图像从 tableViewcell(Xib 文件)传递给另一个 ViewController

我无法将 TableViewCell 按钮连接到 TableViewController!如何将 TableViewCell 中的值连接到 TableViewController?