Domanda

Nella mia app ho una visione tabella con customViewCells. Ho sottoclasse della classe UITableViewCell e ha aggiunto un'immagine che caricherà asincrono e per il testo che uso cell.textLabel.text = @"someThext".

Per le celle il colore di sfondo è impostato in alternativa al [UIColor darkGrayColor] e [UIColor whiteColor].

Quando eseguo l'applicazione nel simulatore e al telefono il textLabel della cellula ha il fondo bianco. Voglio impostarlo per essere chiari, perché voglio che il colore di sfondo della cella per essere completo non una striscia bianca, allora poi un'altra striscia.

Nel metodo init della mia cella personalizzato ho aggiunto, sperando che il bianco si trasformerà in rosso, ma non ha alcun effetto:

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

Ho provato anche:

self.textLabel.backgroundColor = [UIColor redColor];

Ma anche questo non ha funzionato ... se posso aggiungere un UILabel come una visualizzazione secondaria, il colore dell'etichetta sfondo può essere impostato, ma non voglio farlo, perché quando ho ruotare il telefono voglio che il mio etichette per ingrandire auto.

Tutte le idee perché l'impostazione del colore di sfondo cell.textLabel non funziona?

Grazie

È stato utile?

Soluzione 2

Il problema è che UIKit imposta il colore di sfondo della cella nel metodo -setSelected. Ho avuto il metodo, ma non ha avuto self.textLabel.backgroundColor = [UIColor clearColor]; self.detailTextLabel.backgroundColor = [UIColor clearColor]; in essa così ho aggiunto di loro e il problema menzionato nella foto è stato fissato.

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

Altri suggerimenti

Se non si desidera sottoclasse UITableViewCell si può semplicemente aggiungere questo:

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

Sembra che Apple ha cambiato qualcosa qui. Facendo esattamente questo in iOS4 funziona:

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

Almeno fino al punto che lo sfondo dell'etichetta è trasparente o prende il colore di sfondo. Ancora non è possibile impostare un colore proprio sfondo.

Nizza che questo è fisso, ma un po 'sorprendente durante i test se si sviluppa con base SDK 4.1 e min. distribuzione 3.1 per iPhone e iPad classico.

Per impostare un colore di sfondo chiaro è possibile utilizzare clearColor:

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

E 'questo che vuoi dire?

vedi questo post: Come faccio a impostare UITableViewCellSelectionStyle immobili a qualche colore personalizzato?

nel tuo caso basta usare un UIView con colore di sfondo bianco

non ho provato, ma qui è una supposizione ... Al fine di richiamare velocemente la proprietà opaca dell'etichetta potrebbe essere impostata su true per impostazione predefinita.

Prova

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

Se questo non funziona o io sarebbe probabilmente solo rinunciare a questo punto e creare il mio UILabel per la cella.

per impostare il colore del TextLabel si dovrebbe fare questo: t.textColor = [UIColor colorYouWantRGB];

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top