Pergunta

Eu preciso alterar a seleção de cor azul padrão de exibição de tabela para um pouco de cor personalizada. Existe alguma maneira de fazer isso. Ajuda-me

Foi útil?

Solução

A melhor maneira de fazer isso é assim:

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"myCellId";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        UIView *v = [[[UIView alloc] init] autorelease];
        v.backgroundColor = [UIColor redColor];
        cell.selectedBackgroundView = v;
    }
    // Set up the cell...
    cell.textLabel.text = @"foo";
    return cell;
}

A parte relevante para você é o cell.selectedBackgroundView = v; instrução. Você pode substituir a visão 'v' muito básico aqui com qualquer ponto de vista que você gosta.

Outras dicas

Eu também me deparei com este problema com a tentativa de criar visualizações celulares selecionados personalizado para o celular agrupados. Eu resolvi este problema criando 3 tipos de imagens para a célula superior, médio e inferior assumindo que haverá uma célula meio.

NSString *imageFile;

if (row == 0) {
 imageFile = @"highlighted_cell_top.png";
} else if (row == ([registeredDetailsKeys count] - 1)) {
 imageFile = @"highlighted_cell_bottom.png";
} else {
 imageFile = @"highlighted_cell_middle.png";
}

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageFile]];

cell.selectedBackgroundView = imageView;

Não é possivelmente uma maneira mais fácil, mas estou feliz com o resultado.

Eu não acho que você pode usar uma cor personalizada. No entanto, você pode usar a seguinte propriedade do UITableViewCell

@property(nonatomic) UITableViewCellSelectionStyle selectionStyle

O estilo de selecção é uma constante backgroundView que determina a cor de uma célula quando ele é selecionado. O valor padrão é UITableViewCellSelectionStyleBlue. Desde

typedef enum {
   UITableViewCellSelectionStyleNone,
   UITableViewCellSelectionStyleBlue,
   UITableViewCellSelectionStyleGray
} UITableViewCellSelectionStyle;

Você pode alternar entre o azul padrão de cinza, ou nenhuma seleção colorida em tudo.

Certifique-se de que, depois de declarar no cabeçalho

@property(nonatomic) UITableViewCellSelectionStyle selectionStyle

Implementar

cell.selectionStyle = UITableViewCellSelectionStyleGray

onde UITableViewCellSelectionStyleGray pode ser UITableViewCellSelectionStyleNone, UITableViewCellSelectionStyleBlue, UITableViewCellSelectionStyleGray.

Outra maneira de fazer isso seria a de se mover em uma nova visão sobre o seu celular, com qualquer cor que você gostaria e 50%, ou opacidade. Você se move essa visão para o celular quando você começa um -setSelected: animado: chamada. Quando digo movimento, você realmente pode sempre ter uma visão em cima do seu celular, mas é só virar a pouco escondido fora e sobre como você precisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top