2012-03-12 166 views
0

我正在製作一個帶有顯示測試結果的tableview的簡單應用程序。結果來自一個簡單的數組。在陣列中只有數字,測試分數介於0和100之間。基於單元格內容的UITableView單元格顏色

我試圖讓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];,例如,他們都去綠色。

回答

0

假設該值在爲textLabel正確顯示,您可以使用此:

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

if (score >=75) { 
... 
+0

謝謝你的幫助。 – 2012-03-17 06:11:18

0

這是一個表示整數的字符串嗎?如果是這樣,請使用intValue轉換爲整數。它是一個表示浮動的字符串嗎?使用floatValue。您不會提供有關陣列中的內容的任何信息。

+0

好,謝謝,在陣列中有隻是數字 - 考試成績。 99,78,34等。所以我把 intValue = [scoresArray objectAtIndex:row]; ? – 2012-03-12 02:11:33

+0

你是什麼意思「只是數字」?你不能把「數字」放在一個NSArray中。您只能將對象放入數組中。什麼樣的物體?我認爲他們是NSString對象;如果它們不是,那麼說'cell.textLabel.text = [scoresArray objectAtIndex:row]'是違法的。因此,如果它們是NSString對象,那麼要將其作爲一個整數使用,則必須將其轉換爲帶有'intValue'的整數,例如'[[scoresArray objectAtIndex:row] intValue]'。查看NSString文檔(如果這些是NSString對象)。 – matt 2012-03-12 02:35:53

相關問題