выбор цвета для UITableViewCell
-
05-07-2019 - |
Вопрос
Если у меня есть пользовательский UITableViewCell
, который не использует встроенный в ячейку textLabel
, а вместо этого делает свой собственный чертеж, как я могу изменить внешний вид contentView
при выделении, как это происходит автоматически для текста по умолчанию (настраивается путем установки selectedTextColor:
)?
Если я изменю tableView: willSelectRowAtIndexPath:
, то он обновляется только после того, как синий фон выделения активирован, но не во время его анимации, как я хочу.
Решение
Просто не создавайте подкласс UITableViewCell и используйте поведение по умолчанию. Вы можете полностью настроить ячейку без подклассов.
Прочтите эту статью для получения дополнительной информации.
Другие советы
Добавьте этот код в метод tableForRowAtIndexPath своего табличного представления и просто измените ожидаемый цвет для стиля выбора UITableViewCell. Р>
//-------------------------------------------------------------------------
//background selected view
UIView *viwSelectedBackgroundView=[[UIView alloc]init];
viwSelectedBackgroundView.backgroundColor=[UIColor colorWithRed:124.0/255.0 green:202.0/255.0 blue:227.0/255.0 alpha:1.0];
cell.selectedBackgroundView=viwSelectedBackgroundView;
//-------------------------------------------------------------------------
Если вы подклассифицировали UITableViewCell, вы можете настроить элементы ячейки, переопределив следующее:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
if(highlighted) {
self.backgroundColor = [UIColor redColor];
} else {
self.backgroundColor = [UIColor clearColor];
}
[super setHighlighted:highlighted animated:animated];
}