我面临一个奇怪的问题。我在Storyboard中有一个带有5个原型单元的tableview控制器。每个单元格都有一个标签和一个图像。我正在尝试以编程方式选择单元格时更改标签和图像的文本颜色,如下所示。
In cellForRowAtIndexPath method
{
// Using tags I am getting labels from storyboard.
label1 = (UILabel *)[cell.contentView viewWithTag:101];
label2= (UILabel *)[cell.contentView viewWithTag:102];
label3 = (UILabel *)[cell.contentView viewWithTag:103];
label4 = (UILabel *)[cell.contentView viewWithTag:104];
label5 = (UILabel *)[cell.contentView viewWithTag:105];
label1.textColor =[UIColor blackColor];
label2.textColor =[UIColor blackColor];
label3.textColor =[UIColor blackColor];
label4.textColor =[UIColor blackColor];
label5.textColor =[UIColor blackColor];
}
在didSelectRowAtIndexPath方法
中{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
label1 = (UILabel *)[cell.contentView viewWithTag:101];
label2 = (UILabel *)[cell.contentView viewWithTag:102];
label3 = (UILabel *)[cell.contentView viewWithTag:103];
label4 = (UILabel *)[cell.contentView viewWithTag:104];
label5 = (UILabel *)[cell.contentView viewWithTag:105];
此处我想在选中时将所选标签文字颜色更改为白色,否则应为黑色。我可以在选择时将文本颜色更改为白色,但如果选择其他单元格,则无法将文本颜色设置为黑色。
答案 0 :(得分:2)
在didDeselectRowAtIndexPath
中,您可以将颜色更改为黑色。
使用UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
获得牢房。
答案 1 :(得分:1)
为什么不创建UITableViewCell子类并覆盖setSelected:animated:
和setHighlighted:animated:
。在那里,您可以更新标签的颜色并轻松更改图像。
在这样的例子中:
- (void)setSelected:(BOOl)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
_label.textColor = (selected ? _selectedColor : _unselectedColor);
}
您可以更改您的细胞亚类使用身份检查器。