2010-11-20 3 views
0

Also ich benutze die TextLabel und DetailTextLabel, um Informationen auf meine TableView Zellen hinzufügen, aber es gibt ein Problem.UITableViewCell Text Problem

Es gibt eine weiße Box um die beiden Etiketten herum und ich habe versucht, ihre backgroundColor auf clearColor zu setzen, aber das scheint nicht zu funktionieren.

Irgendwelche Vorschläge?

+1

Die Art, wie backgroundColor auf clearColor eingestellt wird, ist der richtige Weg. Vielleicht stimmt etwas nicht damit, wie Sie textLabel und detailTextLabel zu einer benutzerdefinierten Zelle hinzufügen. – AechoLiu

Antwort

1

Standardmäßig setzt UITableView die Hintergrundfarbe des Etiketts auf die Hintergrundfarbe der Tabellenansicht. Dies ist vermutlich für die Optimierung (es läßt das Label "undurchsichtig" sein, so dass kein Alpha-Blending erforderlich, wenn Compositing) =

Es gibt zwei wichtige Fehlerbehebung für dieses Problem:.

  • In Ihrem UITableViewDelegate implementieren -tableView: willDisplayCell: forRowAtIndexPath: und setze backgroundColor = nil und opaque = NO. (Soweit ich weiß, nil entspricht im Allgemeinen [UIColor clearColor].)
  • Override -[UITableViewCell setSelected:animated] und backgroundColor und opaque wie oben. Das funktioniert, weil setSelected: animated: aufgerufen wird, bevor die Zelle zum ersten Mal angezeigt wird, aber etwas ekliger ist (es wird viel genannt).
+0

Hey. Also habe ich etwas wie cell.backgroundColor = nil und cell.opaque = NO; aber das gab meinem Text tatsächlich einen schwarzen Hintergrund anstatt des Weiß, das er vorher hatte. Irgendwelche Vorschläge? – Anthony

+0

Eigentlich reparierte ich es selbst, tat ClearColor stattdessen! Danke für die Hilfe, Kumpel – Anthony