UITableView Cell Color基于单元格的内容

时间:2012-03-12 01:57:01

标签: ios uitableview

我正在创建一个简单的应用程序,其中包含一个显示测试结果的tableview。结果来自一个简单的数组。在数组中只有数字,测试分数在0到100之间。

我正在尝试让UITableView行根据结果更改颜色。高于或等于75将显示绿色背景,> = 50&& < 75将是黄色,> 50将是红色。

这是我到目前为止所拥有的。我的理解很基础。

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    // Configure the cell...
    // Set up the cell...
    NSUInteger row = [indexPath row];
    cell.textLabel.text = [scoresArray objectAtIndex:row];

    // THIS IS WHERE I NEED HELP TO GET THE VALUE FROM THE ARRAY 
    // INTO ????

    if (???? >=75) {
        cell.contentView.backgroundColor = [UIColor greenColor];
    }
    if (???? >=50 && ???? <75) {
        cell.contentView.backgroundColor = [UIColor yellowColor];
    }
    if (???? >=0 && ???? <50) {
        cell.contentView.backgroundColor = [UIColor redColor];
    }
    else {
        cell.contentView.backgroundColor = [UIColor whiteColor];
    }

    return cell;
}

#pragma mark UITableViewDelegate
- (void)tableView: (UITableView*)tableView willDisplayCell: 
(UITableViewCell*)cell forRowAtIndexPath: (NSIndexPath*)indexPath
{
    cell.backgroundColor = cell.contentView.backgroundColor;    
}

例如,如果我只是放cell.contentView.backgroundColor = [UIColor greenColor];,它们都会变绿。

2 个答案:

答案 0 :(得分:0)

这是一个表示整数的字符串吗?如果是,请使用intValue转换为整数。它是一个表示浮点数的字符串吗?使用floatValue。您不会提供有关阵列中的内容的任何信息。

答案 1 :(得分:0)

假设该值在textLabel中正确显示,您可以使用:

 NSInteger score = [cell.textLabel.text intValue];

 if (score >=75) {
 ...