我有一个使用新的double值每10秒刷新一次的tableview,我需要一种机制来比较当前值与之前的值,但是我没有正确地执行它。
这就是我现在所拥有的。您能否建议如何存储当前/以前的值以在刷新后进行比较。 thx提前
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell;
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierCell forIndexPath:indexPath];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifierCell];
}
Value = [[tempDictionary objectForKey:@"value"] doubleValue];
if (ValueCurrent > ValuePrevious && ValuePrevious !=0.0) {
Label.backgroundColor = [UIColor greenColor];
}
if (ValueCurrent < ValuePrevious) {
Label.backgroundColor = [UIColor redColor];
}
ValuePrevious = Value;
return cell;
}
答案 0 :(得分:1)
在我看来,所有这些检查都应该在模型级别上执行 - 在你的情况下在tempDictionary中。如果在更新字典时新值与前一个不同,则添加另一个键“已更改”并将其设置为@(YES),否则设置为@(否)。
然后你可以在cellForRowAtIndexPath中检查这个值:并设置背景颜色。
答案 1 :(得分:0)
首先,我不确定您是否需要将每个单元格的新值与之前的单元格进行比较。如果您需要将新值与每个单元格的先前值进行比较,则必须分别为先前值和当前值创建NSArray
NSDictionary
,然后将它们分别与每个单元格进行比较。
如果您想在UITableView
重新加载时只比较一个值,那么您不应该在cellForRowAtIndexPath
中对其进行比较,而是在调用[tableView reloadData]
时进行比较。
希望它有所帮助!