2010-09-01 68 views
2

我在iphone表視圖中有以下幾行,它們有時會將文本從其中一行泄漏到另一行。錶行泄漏

if (row <1) 
    { 
     [email protected]"h3ello"; 
      UIImage *image = [UIImage imageNamed:@"icon.png"]; 
      cell.imageView.image = image; 
    } 
     else if (row ==2) 
    { 
     [email protected]"world"; 
     UIImage *image = [UIImage imageNamed:@"ticon.png"]; 
     cell.imageView.image = image 
} 

並且有時這些圖像會在兩者之間搞砸,另外還有另一行包含文本顏色。當我滾動時,這會導致各種隨機行獲得紅色。林不知道是什麼錯誤..

編輯

這是罪魁禍首參與

cell.textLabel.textColor = [UIColor redColor]; 

一次我刪除這些都不行的人混在一起的顏色。 我怎麼能實現這種顏色到一個特定的行沒有泄漏到其他隨機。

回答

2

因爲默認情況下單元格是可重用的,所以您應該始終爲您曾經使用的所有單元格設置所有參數。 如果你想改變一個單元格的顏色,你應該爲OTHER單元格設置默認顏色。 因此,在每種情況下使用cell.textLabel.textColor = ....以適當的顏色。

+0

含義添加一個額外的else語句來設置默認的顏色和文本。 – VdesmedT 2010-09-01 11:00:51

1

Skie給出的理由是正確的。讓我再澄清一點:

cell.textLabel.text = @""; 
cell.textLabel.textColor = [UIColor clearColor]; 
cell.imageView.image = nil; 

if (row <1) 
{ 
    [email protected]"h3ello"; 
    UIImage *image = [UIImage imageNamed:@"icon.png"]; 
    cell.imageView.image = image; 
} 
    else if (row ==2) 
{ 
    [email protected]"world"; 
    UIImage *image = [UIImage imageNamed:@"ticon.png"]; 
    cell.imageView.image = image 
} else { 
}