我有一个TableView
,每行包含两个变量,每隔2秒就会通过从服务器获取数据来刷新。我想在每次更新时更改标签颜色,如果红色或绿色更高或更低。那我该怎么办呢?虽然我知道如何更改标签颜色,但不知道如何在每2秒之间进行压缩。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"comCell";
comTableViewCell *cell = (comTableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil) {
NSArray *parts = [[NSBundle mainBundle] loadNibNamed:@"comTableViewCell" owner:nil options:nil];
cell = [parts objectAtIndex:0];
}
id rowObject = [data1 objectAtIndex:indexPath.row];
[cell.lblType setText:[rowObject objectForKey:@"strSymbol"]];
[cell.lblOffer setText:[rowObject objectForKey:@"strOffer"]];
[cell.lblBid setText:[rowObject objectForKey:@"strBid"]];
cell.lblType.font = [UIFont fontWithName:@"Helvetica" size:12.0f];
cell.lblOffer.font = [UIFont fontWithName:@"Helvetica" size:12.0f];
cell.lblBid.font = [UIFont fontWithName:@"Helvetica" size:12.0f];
cell.lblType.textColor = [UIColor blackColor];
cell.lblOffer.textColor = [UIColor whiteColor];
cell.lblBid.textColor = [UIColor whiteColor];
return cell;
}
数据结果:
{
strBid = "1.29158";
strOffer = "1.29258";
strSymbol = "USD/EUR";
},
{
strBid = "98.964";
strOffer = "99.004";
strSymbol = "AUD/JPY";
},
{
strBid = "11.2472";
strOffer = "11.2972";
strSymbol = "USD/ZAR";
}
更新
data2 = data1;
id rowObject2 = [data2 objectAtIndex:indexPath.row];
NSString *new_offer = [rowObject2 objectForKey:@"strOffer"];
if (data2 != nil) {
id old_rowObject = [data2 objectAtIndex:indexPath.row];
NSString *old_offer = [old_rowObject objectForKey:@"strOffer"];
if ([new_offer doubleValue] > [old_offer doubleValue]) {
cell.lblOffer.textColor = [UIColor greenColor];
cell.lblBid.textColor = [UIColor greenColor];
}
else if ([new_offer doubleValue] == [old_offer doubleValue]) {
cell.lblOffer.textColor = [UIColor blackColor];
cell.lblBid.textColor = [UIColor blackColor];
}
else {
cell.lblOffer.textColor = [UIColor redColor];
cell.lblBid.textColor = [UIColor redColor];
}
} else {
// first time getting data.
}
return cell;
}
答案 0 :(得分:0)
<强>更新强>
将此行data2 = data1;
移动到您开始解析json的位置。在用于解析的代码之前。
旧帖子:
- (void)parserDidStartDocument:(NSXMLParser *)parser {
old_data = data1; <<-- saves data here!
data1 = [[…. alloc] init];
}
id rowObject = [data1 objectAtIndex:indexPath.row];
NSString *new_offer = [rowObject objectForKey:@"strOffer"];
if (old_data != nil) {
id old_rowObject = [old_data objectAtIndex:indexPath.row];
NSString *old_offer = [old_rowObject objectForKey:@"strOffer"];
if ([new_offer doubleValue] > [old_offer doubleValue]) {
// set colour here.
} else {
// and here.
}
} else {
// first time getting data.
}