有一个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];
}
}
}
但是使用此代码,我得到的所有值都是红色或全部为绿色。
答案 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答案的代码版本。