我有自己的UITableViewCell
子类,我想在用户按下单元格时自定义。
所以,我尝试重写以下方法:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
if (highlighted)
{
[self setBackgroundColor:[UIColor orangeColor]];
[self.optionLabel setTextColor:[UIColor whiteColor]];
}
else
{
[self setBackgroundColor:[UIColor clearColor]];
[self.optionLabel setTextColor:[UIColor orangeColor]];
}
[super setHighlighted:highlighted animated:animated];
}
如果按住单元格,这可以正常工作。但是,如果我快速点击该单元格,我的UITableView
会抓住委托回调tableView:didSelectRowAtIndexPath:
,您无法看到我上面的任何代码生效。
有谁知道我在这里做错了什么?
答案 0 :(得分:1)
那么,您可以在选择单元格而不是突出显示单元格时处理。类似的东西:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
[super setHighlighted:highlighted animated:animated];
[self updateCell];
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
[self updateCell];
}
- (void)updateCell {
if (self.highlighted || self.selected) {
[self setBackgroundColor:[UIColor orangeColor]];
[self.optionLabel setTextColor:[UIColor whiteColor]];
} else {
[self setBackgroundColor:[UIColor clearColor]];
[self.optionLabel setTextColor:[UIColor orangeColor]];
}
}