变量和比较之间的比较改变标签颜色

时间:2014-11-07 16:38:58

标签: ios

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

1 个答案:

答案 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.
}