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.

Foi útil?

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];
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top