设置cell.textLabel.textColor会导致IOS中其他部分的颜色不一致

时间:2015-04-04 10:26:13

标签: ios objective-c uitableview uitableviewrowaction

我是IOS开发的新手,现在我在cell.textLabel.textColor

中遇到了问题

我所做的是实现一个tableview,并根据该部分设置颜色,如下所示,我有4个部分,每个部分有7行。 enter image description here 正如您所看到的,当此标签位于0部分时,我只将文本颜色设置为红色,但结果是:

enter image description here

其他部分的颜色是错误的,正如您所看到的,其中一些变为红色。

但如果我取消注释else范围中的代码,请将颜色设置为黑色,它可以正常工作。

enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

这是预期的行为。

UITableView重用具有相同标识符的单元格。因此,如果你只在第0部分将它们设置为红色,它们最终将被重用,并且由于你从未告诉可重用状态是什么,它们将重用红色状态。

您可以按照您的方式解决此问题(当该部分不为零时提供默认状态),或者您可以在自定义单元格(扩展-(void)prepareForReuse)中实现方法UITableViewCell

答案 1 :(得分:1)

这是其他人说的预期行为。您应该同时拥有textColor=blacktextColor=red,因为您的UITableViewController正在考虑所有带标识符的单元格" Cell"同一件事情。如果您打算在单元格上进行大量自定义,我建议您创建一个具有不同标识符的新自定义单元格,以便UITableViewController能够区分它