我在自定义 UITableViewCell 中有一个 UILabel . 此标签具有带有多种文本颜色/字体的属性字符串 . 当单元格突出显示时,标签中的属性文本全部变为相同的颜色 . 更具体地说,文本全部变成与 first character 相同的颜色 . 字体不会改变 .

我认为这种行为与 UILabel 上的 highlightedhighlightedTextColor 属性有关 . 我通过继承 UILabel 并覆盖 -(BOOL)highlighted; 来测试这个,总是返回 NO . 这似乎可以防止颜色变化,但我想知道是否有人可以解释为什么会发生这种情况,以及是否有更好的解决方案(如不涉及子类化UILabel的解决方案) .