- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
if (selected) {
companyLabel.textColor = [UIColor whiteColor];
priceLabel.textColor = [UIColor whiteColor];
changeLabel.textColor = [UIColor whiteColor];
symbolLabel.textColor = [UIColor whiteColor];
}
else
{
companyLabel.textColor = [UIColor blackColor];
priceLabel.textColor = [UIColor blackColor];
symbolLabel.textColor = [UIColor blackColor];
if([changeLabel.text doubleValue] < 0)
{
changeLabel.textColor = [UIColor colorWithRed:239.0/255.0 green:16.0/255.0 blue:52.0/255.0 alpha:1.0];
}
else if([changeLabel.text doubleValue] > 0)
{
changeLabel.textColor = [UIColor colorWithRed:77.0/255.0 green:161.0/255.0 blue:0.0 alpha:1.0];
}
}
}
直到下一个视图被推入导航堆栈之后,我的文字才会变为白色。
我希望它变成白色,即使用户点击+持有一个单元格。
答案 0 :(得分:17)
UILabel
具有highlightedTextColor
属性。当像UITableViewCell
这样的视图进入突出显示状态时,所有子视图(包括您的标签)都应自动更改为使用其突出显示的属性。如果它仍然不起作用,那么还有一个用于禁用该功能的字段,您可能需要检查。
答案 1 :(得分:1)
您不希望在任何tableview委托方法中执行此操作。您必须将突出显示的文本颜色设置为给定的
的UILabel[myLabel setHighlightedTextColor:[UIColor whiteColor]];
这会奏效。你也不想处理甚至没有突出的状态。
干杯!
答案 2 :(得分:0)
我将使用UITableViewDelegate方法来实现此目的。 UILabel可以设置颜色,所以为什么不使用didSelectRowAtIndex和didDeselectRowAtIndex。在didSelectRowAtIndex中,将标签设置为所需的颜色,然后在didDeselectRowAtIndex中将标签设置回黑色。
答案 3 :(得分:-1)
您可以使用UIButton替换标签并对touchDown事件进行操作吗?
Button仍然具有titleLabel属性,因此它可以显示文本,并且您将能够更轻松地操作触摸。我看不到你的代码,所以我不知道你在用这些标签做什么。