我有一个 Xcode Swift 应用程序,它使用 UITableView 来显示结果列表。
每一行都有一个值,该值被计算为与下一行中的值的差。
当数据加载时,一切都很好。然而,我注意到,正如我现在通过 TableView 的行为了解到的那样,每个单元格在即将呈现给 View 时都会被计算。
所以最初我的代码逻辑是这样说的:
// Global variable
var previousX = 0;
// Building up cell (this happens for each cell in the table view)
----------------------------
var x = 5;
var difference = x - previousX;
previousX = x;
----------------------------
因此,当负载第一次列出并且向下滚动时,这可以正常工作。 但是,一旦您向上滚动,它就会再次加载单元格。这意味着我的“previousX”不一定是我正在构建的当前单元上方的单元,但可能位于其下方。所以这些值是不可预测的。
如何避免这种情况?在构建单元格时,我的单元格如何始终获得“上一个/上方”单元格值?显然,使用“previousX”作为最后填充的单元格的值并不是理想的解决方案。
如果您需要我提供更多信息,请告诉我。
谢谢!
最佳答案
要实现此目的,您必须为此维护数组:
// instance variable
var previousX:[Int] = []
// Give default to array
previousX = [Int](count: 3, repeatedValue: 0) // create array as per you need
// Building up cell (this happens for each cell in the table view)
var x = 5
var difference = x - previousX[indexPath.row - 1]
previousX[indexPath.row] = difference
关于ios - 如何根据 UITableView 中的相邻行计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30802181/