Pergunta

No meu aplicativo, tenho uma exibição de tabela com o CustomViewCells. Subclassei a classe UitableViewCell e adicionei uma imagem que carregará assínculas e para o texto que uso cell.textLabel.text = @"someThext".

Para as células, a cor do fundo é definida como alternativa para [UIColor darkGrayColor] e [UIColor whiteColor].

Quando eu executo o aplicativo no simulador e no telefone o textLabel da célula tem o fundo branco. Quero deixar claro, porque quero que a cor de fundo da célula esteja cheia e não uma tira, em seguida, depois outra tira.

No método init da minha célula personalizada, espere, esperando que o branco se torne vermelho, mas não tem nenhum efeito:

[self.textLabel setBackgroundColor:[UIColor redColor]];

Eu também tentei:

self.textLabel.backgroundColor = [UIColor redColor];

Mas isso também não funcionou ... se eu adicionar um Uilabel como uma subjecução, a cor de fundo do rótulo pode ser definida, mas não quero fazer isso porque quando eu giro o telefone, quero que meus rótulos prolongar.

Qualquer idéia por que definir a cor de fundo de cell.textLabel não funciona?

obrigada

Foi útil?

Solução 2

O problema é que o UIKIT define a cor do fundo da célula no método -setselected. Eu tinha o método, mas não tinha auto.textlabel.backgroundcolor = [uicolor clearcolor]; self.detailtextlabel.backgroundColor = [uicolor clearcolor]; Nele, então eu os adicionei e o problema mencionado na imagem foi corrigido.

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    self.textLabel.backgroundColor = [UIColor clearColor];
    self.detailTextLabel.backgroundColor = [UIColor clearColor];
}

Outras dicas

Se você não deseja subclasse uabableViewCell, basta adicionar isso:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
     [[cell textLabel] setBackgroundColor:[UIColor clearColor]];
     [[cell detailTextLabel] setBackgroundColor:[UIColor clearColor]];
}

Parece que a Apple mudou algo aqui. Fazendo exatamente isso no iOS4 funciona:

self.textLabel.backgroundColor = [UIColor xxxColor];
self.detailTextLabel.backgroundColor = [UIColor xxxColor];

Pelo menos até o ponto em que o fundo do rótulo é transparente ou pega a cor do fundo. Ainda não é possível definir uma cor de fundo próprio.

É bom que isso seja fixo, mas um pouco surpreendente durante os testes, se você desenvolver com a base SDK 4.1 e min. Implantação 3.1 para iPhone Classic e iPad.

Para definir uma cor clara de fundo, você pode usar o ClearColor:

    [[cell textLabel] setBackgroundColor:[UIColor clearColor]];

É isto que você quer dizer?

Veja este post: Como faço para definir a propriedade UitableViewCellSelectionStyle para alguma cor personalizada?

No seu caso, basta usar um uiview com cor branca de fundo

Eu não tentei, mas aqui está um palpite ... para desenhar mais rapidamente, a propriedade opaca do rótulo pode ser definida como true por padrão.

Tentar

cell.titleLabel.opaque = NO;
cell.titleLabel.backgroundColor = [UIColor clearColor];

Se isso não funcionar, eu provavelmente desistiria neste momento e criaria meu próprio Uilabel para a célula.

Para definir a cor do textlabel, você deve fazer isso: t.TextColor = [uicolor coloryouwantrgb];

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