我有自定义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;
答案 0 :(得分:23)
设置标签的highlightTextColor,这将自动完成。你根本不应该在 setSelected 中做任何特别的事情。
e.g。
_subjectLabel.highlightedTextColor = [UIColor whiteColor];
答案 1 :(得分:1)
当我们选择立即调用UITableView
,-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
方法的任何单元格时,您可以使用此方法。