9

我有一个习惯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;
4

2 回答 2

22

设置标签的高亮文本颜色,这一切都会自动为您完成。您根本不需要在setSelected中做任何特别的事情。

例如

_subjectLabel.highlightedTextColor = [UIColor whiteColor];
于 2012-05-21T03:50:52.143 回答
1

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

于 2012-05-19T07:00:57.733 回答