我想以两种不同的颜色显示NSMutableArray的对象

时间:2014-12-02 12:16:49

标签: ios objective-c xcode

有一个NSMutableArray" onlinevalarr"其中我有离线和在线作为价值观。 我想以红色显示离线,并以绿色显示在线值。 这是我的代码:

{ for (NSString * str in onlinevalarr) { if ([str isEqualToString:@"online"]) { NSLog(@"online"); cell.online.textColor = [UIColor greenColor]; } else if ([str isEqualToString:@"offline"]) { NSLog(@"offline"); cell.online.textColor = [UIColor redColor]; } } }

但是使用此代码,我得到的所有值都是红色或全部为绿色。

4 个答案:

答案 0 :(得分:5)

考虑一下您的代码在做什么。

你有一个for循环遍历所有数组中的元素,并根据当前数组元素设置当前单元格的颜色。当您浏览for循环时,将当前单元格的颜色设置为不同的值,然后在完成后,单元格将具有阵列中最后一个条目的颜色。这没有用。

如果此代码来自您的cellForRowAtIndexPath方法,那么您希望获取当前单元格的行,将其用作数组的索引,然后使用它来确定当前单元格的颜色。

答案 1 :(得分:0)

尝试为每个单元格使用不同的单元格标识符。 例如:“OnlineCellIdentifier”和“OfflineCellIdentifier

答案 2 :(得分:0)

更新颜色后,重新加载该单元格的数据

答案 3 :(得分:0)

我认为这就是你要做的事情:

if ([(NSString*)[onlinevarr objectAtIndex:indexPath.row] isEqualToString:@"online"]){
    NSLog(@"online");
    cell.online.textColor = [UIColor greenColor];
}else if ([[(NSString*)[onlinevarr objectAtIndex:indexPath.row] isEqualToString:@"offline"]){
    NSLog(@"offline");
    cell.online.textColor = [UIColor redColor];
}

P.S。此代码将保留在cellForRowAtIndexPath方法中。

请不要粘贴代码,理解它。这是@DuncanC答案的代码版本。