请告诉我,如何比较Tableview中不同行的两个相同(标签名称为“labelNumber”)的标签
例如:我知道,行№0标签中的“06”(Int)和下一个单元格(行№1)中的标签是“07”。所以,“07”> “06”。如何将它与快速语言进行比较?
谢谢!
答案 0 :(得分:0)
比较数据数组中存储的值:
if dataArray[0].myIntegerValue > dataArray[1].myIntegerValue {
// Do your stuff
}
编辑:这假设您的数据存储为具有该Int作为属性的对象。
答案 1 :(得分:0)
正如其他人所说,不要这样做。在MVC设计模式中,标签是视图。它们用于显示数据,而不是存储数据。
尝试从表视图标签中读取值特别糟糕,因为当表视图滚动时,屏幕外的单元格将被回收,其视图中的值将被丢弃。您需要将数据保存到模型对象。 (数组可以很好地保存表视图数据,或者用于分段表视图的数组数组。)
答案 2 :(得分:0)
如 @vadian 所述,您不应使用您填充的用户界面来执行数据计算。
但是,这是用于比较2 UITableViewCell(s)
class Controller: UITableViewController {
func equals(indexA: NSIndexPath, indexB: NSIndexPath) -> Bool? {
guard let
cellA = tableView.cellForRowAtIndexPath(indexA),
cellB = tableView.cellForRowAtIndexPath(indexB) else { return nil }
return cellA.textLabel?.text == cellB.textLabel?.text
}
}
想想你是如何填充细胞的。我想你正在使用一些模型值。因此,只需比较您用于填充单元格的模型值。
可能是这样的
class Controller: UITableViewController {
var data: [Int] = [] // ....
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCellWithIdentifier("YourCellID") else { fatalError("No cell found with this id: 'YourCellID'")}
cell.textLabel?.text = String(data[indexPath.row])
return cell
}
func equals(indexA: NSIndexPath, indexB: NSIndexPath) -> Bool? {
return data[indexA.row] == data[indexB.row]
}
}