2010-10-28 204 views
0

我有一個UItableview,我想更改單元格背景,當它被選中,並保持它,所以我試圖使用 [cell setBackgroundColor:[UIColor purpleColor]]; ,但這使得其他細胞同時着色,我不知道爲什麼 我也嘗試使用 [cell.textLabel setBackgroundColor:[UIColor purpleColor]]; 但當我選擇另一個單元格的背景回到白色 所以任何想法解決這個問題??更改UITableViewCell背景顏色時選擇

回答

3

UIView *backgroundView = [[UIView alloc] initWithFrame:cell.selectedBackgroundView.frame];
[backgroundView setBackgroundColor:[UIColor purpleColor]];
[cell setSelectedBackgroundView:backgroundView];
[backgroundView release];

+0

問題是,當我選擇另一個細胞的前一個細胞再次回到白色,我不想那 – Manal 2010-10-30 18:39:52

+0

我不明白。你是否想要實現多重選擇?如果是這樣,AFAIK你必須自己實現它。 – pt2ph8 2010-10-30 20:04:10

0

自3.0,在willDisplayCell方法對其進行設置:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 
cell.backgroundColor = [UIColor redColor]; 

}

0

子類的UITableViewCell自己類,即MyTableViewCell並重新實現所選擇的功能。

-(void)setSelected:(BOOL)selected animated:(BOOL)animated 
{ 
    [super setSelected:selected animated:animated]; 
    UIView *backgroundView = [[UIView alloc] initWithFrame:self.selectedBackgroundView.frame]; 
    [backgroundView setBackgroundColor:[UIColor purpleColor]]; 
    [self setSelectedBackgroundView:backgroundView]; 
}