cor de seleção para um UITableViewCell
-
05-07-2019 - |
Pergunta
Se eu tiver um UITableViewCell
personalizado que não usa o textLabel
integrada no celular, mas em vez disso faz o seu próprio desenho, como posso mudar a aparência do contentView
na seleção, como ele faz automaticamente o texto padrão (customizáveis definindo o selectedTextColor:
)?
Se eu mudar tableView:willSelectRowAtIndexPath:
, então ele só atualiza depois que o fundo azul seleção é para cima, mas não enquanto a sua animação, como eu quero.
Solução
Só não subclasse UITableViewCell e usar o comportamento padrão. Você pode personalizar totalmente uma célula sem qualquer subclasse.
Leia este artigo para mais detalhes.
Outras dicas
Adicione este código em seu método tableview cellForRowAtIndexPath e apenas mudam de cor esperado para o estilo selecção 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;
//-------------------------------------------------------------------------
Se você tiver uma subclasse um UITableViewCell, então você pode personalizar os elementos da célula, substituindo o seguinte:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
if(highlighted) {
self.backgroundColor = [UIColor redColor];
} else {
self.backgroundColor = [UIColor clearColor];
}
[super setHighlighted:highlighted animated:animated];
}