按下时更改tableview中项目的颜色

时间:2014-05-09 08:40:35

标签: ios uitableview colors tableview

我有一个tableview,tableview中填充了.plist中的项目。

然后我使用此方法为按下某些内容时添加功能:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    if (indexPath.row == 0) { //do something
}

if (indexPath.row == 1) { //do something
}

等等等等

我在IB /故事板中设置了字体颜色但是我想在按下时更改文本的颜色。所以基本上我希望它在按下时像UIButton一样。

当然,并不是所有文本都应该在按下一个单元格时更改,而只是当前单元格中正在按下的文本的颜色。

4 个答案:

答案 0 :(得分:1)

您可以更改所选单元格中的所有内容

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.font=[UIFont fontWithName:@"Arial"];
 cell.contentView.backgroundColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0];
}

-(void)tableView:(UITableView *)tableView deSelectRowAtIndexPath:(NSIndexPath *)indexPath{

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.font=[UIFont fontWithName:@"Arial"];
 cell.contentView.backgroundColor = //default color;
}

答案 1 :(得分:0)

UIView *selectedBackgroundView = [[UIView alloc] init];
selectedBackgroundView.backgroundColor = [UIColor redColor];
cell.selectedBackgroundView = selectedBackgroundView;

答案 2 :(得分:0)

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];


 if (indexPath.row == 0) 
 { 
   cell.labelText.color = [UIColor redColor];
 }

 if (indexPath.row == 1) 
 { 
 cell.labelText.color = [UIColor greenColor];
 }
}

答案 3 :(得分:0)

一个选项(我假设您有一个UITableViewCell子类MyTableViewCell,根据需要调整):

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    if (indexPath.row == 0) { //do something
}

if (indexPath.row == 1) { //do something
}

MyTableViewCell *cell = (MyTableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
// Adjust your cell contents as needed

还添加取消选择委托方法以还原更改:

    -(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
 MyTableViewCell *cell = (MyTableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
    // Adjust your cell contents back to normal     

另一种选择是覆盖setSelected:animated:和setHighlighted:在UITableViewCell子类中进行动画处理,并对那里的单元格元素进行适当的更改。