在iOS中选择单元格时如何以编程方式更改原型单元格中的标签文本颜色和图像

Posted

技术标签:

【中文标题】在iOS中选择单元格时如何以编程方式更改原型单元格中的标签文本颜色和图像【英文标题】:How to change label text color and image in prototype cell programmatically when cell selected in iOS 【发布时间】:2014-03-09 14:29:12 【问题描述】:

我遇到了一个奇怪的问题。我在 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];

在这里,我想在选择时将选定的标签文本颜色更改为白色,否则它应该是黑色的。我可以在选择时将文本颜色更改为白色,但如果我选择其他单元格,我无法将文本颜色设置回黑色。

【问题讨论】:

【参考方案1】:

didDeselectRowAtIndexPath 中,您可以将颜色改回黑色。

使用UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 获取单元格。

【讨论】:

我只喜欢那样。但我无法重置为我面临的问题的 textcolor black。 您可以编辑您的帖子并粘贴您的didDeselectRowAtIndexPathmethod 中的代码吗? 我解决这个问题只是为了在情节提要中将高亮标签颜色设置为白色而无需代码。无论如何,感谢您的快速回复【参考方案2】:

为什么不创建 UITableViewCell 子类并覆盖 setSelected:animated:setHighlighted:animated:。您可以在那里更新标签的颜色并轻松更改图像。 在这样的例子中:

 - (void)setSelected:(BOOl)selected animated:(BOOL)animated 
    [super setSelected:selected animated:animated];

    _label.textColor = (selected ? _selectedColor : _unselectedColor);


您可以更改您的单元子类使用身份检查器。

【讨论】:

如何将原型单元格更改为故事板中的 UITableViewCell 您可以在身份检查器中更改您的单元子类吗?看看我的答案中的图片。 你能解释一下吗? 也许以下链接可以帮助您更熟悉 Storyboards 和 Interface Builder:techotopia.com/index.php/…

以上是关于在iOS中选择单元格时如何以编程方式更改原型单元格中的标签文本颜色和图像的主要内容,如果未能解决你的问题,请参考以下文章

触摸单元格时隐藏灰色

为 iOS 选择 TableView 单元格时视图已更改

swift - 在UITableView中选择单元格时如何更改按钮名称?

在uitableview中选择时如何更改自定义单元格图像和标签字体颜色?

当原型单元不工作时如何使用segue

选择单元格时,更改 QTableView 中图标的颜色突出显示