2014-12-02 79 views
0

有一個NSMutableArray「onlinevalarr」,其中我有離線和在線作爲值。 我想以紅色和綠色在線值顯示離線。 這是我的代碼:我想顯示兩種不同顏色的NSMutableArray的對象

{ 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

你是否正確的日誌? – 2014-12-02 12:19:20

+0

所有值都顯示爲自定義單元格中的標籤。 – AV121 2014-12-02 12:19:25

+0

是得到正確的日誌,它正在輸入正確的if-else如果條件,但文本顏色沒有改變 – AV121 2014-12-02 12:20:00

回答

5

想想你的代碼在做什麼。

你有一個for循環,循環遍歷數組中的所有元素,並根據當前數組元素設置當前單元格的顏色。當你遍歷你的for循環時,你將當前單元格的顏色設置爲不同的值,然後一旦完成,單元格將具有陣列中最後一個條目的顏色。這沒有意義。

如果此代碼來自cellForRowAtIndexPath方法,那麼您希望獲取當前單元格的行,將其用作數組中的索引,然後使用它來確定當前單元格的顏色。

0

嘗試爲每個單元格使用不同的單元格標識符。 例:「OnlineCellIdentifier」和「OfflineCellIdentifier

0

更新顏色之後,重新裝載數據針對該小區

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]; 
} 

PS此代碼是要保持在cellForRowAtIndexPath方法。

並請,不只是粘貼代碼,瞭解它。這是@ DuncanC的答案代碼版本。

+0

感謝您的幫助@ aksh1t,它的工作..! – AV121 2014-12-02 13:56:29

+0

@ aksh1t,我建議不要發佈確切的代碼。在OP的學習水平上,他/她**將會在不理解它做什麼的情況下剪切粘貼它。請注意他接受了你的答案,而不是我的答案。我告訴他他的代碼有什麼問題,以及如何解決這個問題。你提供了入門代碼。 – 2014-12-02 14:14:49

+0

@DuncanC我認爲發佈一些代碼會使OP更容易。那麼,我明白,他/她最有可能只是粘貼代碼而不從中學習,並最終返回一些其他問題,而不是從錯誤中學習。今後我會小心的讓OP瞭解,而不僅僅是提供下拉代碼。 – aksh1t 2014-12-02 16:33:54