Поскольку вы используете настраиваемую ячейку таблицы, вы можете реализовать код для установки цветов меток, реализовав методы setSelected и setHighlighted в своем пользовательском UITableViewCell. Это будет фиксировать все изменения состояния из выделения, хотя есть некоторые хитрые случаи, например, когда setHighlighting вызывается с NO, когда вы выбираете и перетаскиваете за пределы ячейки после того, как она уже была выбрана. Вот подход, который я использовал, который, я считаю, устанавливает цвет соответствующим образом во всех случаях.
- (void)updateCellDisplay {
if (self.selected || self.highlighted) {
self.nameLabel.textColor = [UIColor lightGrayColor];
self.colorLabel.textColor = [UIColor lightGrayColor];
}
else {
self.nameLabel.textColor = [UIColor blackColor];
self.colorLabel.textColor = [UIColor blackColor];
}
}
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
[super setHighlighted:highlighted animated:animated];
[self updateCellDisplay];
}
- (void) setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
[self updateCellDisplay];
}