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

标签 ios swift xcode6

我有一个 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/

相关文章:

ios - 裁剪 CALayer 的一部分

ios - 你如何在 Swift 中从 NSManagedObject 获取 NSSet?

ios - Swift编译器错误

ios - 自动布局和对齐约束

ios - 使用 objective-c 在iOS中制作一个没有图像的圆形按钮

ios - 如何使用 ViewModifier 在 swiftUI 中选择性地设置前景色以查看

iphone - 如何将多个目录中的一组视频打包并在iPhone应用程序中播放?

swift - 关于文档的字符串到 NSString 的结合不起作用

ios - 滚动时表格 View 单元格复选标记会更改位置

ios - 如何停止从另一个 ViewController 播放音频?