如何根据UITableView中的相邻行计算值

时间:2015-06-12 11:40:51

标签: ios swift xcode6

我有一个Xcode Swift应用程序,它使用UITableView显示结果列表。

每一行都有一个值,该值被计算为下一行中值的差值。

加载数据时,一切都很好。但是我注意到,正如我现在已经了解到TableView的行为,是每个单元格在即将呈现时都会被计算出来。

所以我最初在我的代码逻辑中说过,

// 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'作为最后一个填充单元格的值并不是理想的解决方案。

如果您需要我的更多信息,请与我们联系。

谢谢!

2 个答案:

答案 0 :(得分:1)

使用indexPath.row值作为每行的唯一数据,并根据单元格位置自动增加/减少。这可能有所帮助。

答案 1 :(得分:1)

要达到这个你必须为此保持数组:

// 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