自定义表格视图单元格选择字体颜色

时间:2012-05-19 06:52:05

标签: ios ios5 uitableview

我有自定义UITableViewCell。它内部有3个自定义标签,带有自定义文本。

当我点击单元格时,我希望所有这些标签的textColor变为白色。就像电子邮件应用UITableViewCell行为一样。

为此,我在自定义单元格类中写了这个。

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

    // Configure the view for the selected state

    if (self.selected) {
        _subjectLabel.textColor = [UIColor whiteColor];
        _messageLabel.textColor = [UIColor whiteColor];
        _usernameLabel.textColor = [UIColor whiteColor];
    }else {
        _subjectLabel.textColor = [UIColor blackColor];
        _messageLabel.textColor = [UIColor grayColor];
        _usernameLabel.textColor = [UIColor blackColor];
    }



}

我能够得到它。但它并不像电子邮件应用程序那样流畅。颜色仅在稍微延迟后才会改变。我应该覆盖哪种UITableViewCell方法来放入此代码。我知道以下选项,但它们不会将行为提供给自定义单元格中的自定义标签。

typedef enum {
    UITableViewCellSelectionStyleNone,
    UITableViewCellSelectionStyleBlue,
    UITableViewCellSelectionStyleGray
} UITableViewCellSelectionStyle;

2 个答案:

答案 0 :(得分:23)

设置标签的highlightTextColor,这将自动完成。你根本不应该在 setSelected 中做任何特别的事情。

e.g。

_subjectLabel.highlightedTextColor = [UIColor whiteColor];

答案 1 :(得分:1)

当我们选择立即调用UITableView-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath方法的任何单元格时,您可以使用此方法。