2 Stimmen

UITableViewCell labels opaque=YES sieht beim Anklicken der Zelle schlecht aus

Ich möchte, dass meine Tabellenzellen schnell geladen werden, also setze ich alle meine UILabels innerhalb meiner Zelle auf opaque=YES; Das ist in Ordnung, denn ich setze auch die Hintergründe auf weiß und es sieht normal aus.

Das Problem kommt, wenn Sie auf die Zelle klicken, da die Hintergründe dieser Beschriftungen weiß sind, die blaue ausgewählte Farbe sieht ziemlich schlecht, wenn Sie versuchen, die Zelle zu markieren. Gibt es eine Lösung für dieses Problem? Würde das Einstellen der Hintergrundfarbe dieser Zellen auf clearColor den Zweck der Einstellung opaque zunichte machen?

3voto

GorillaPatch Punkte 4957

Es gibt etwas, das Sie beachten müssen. Erstens ist die Einstellung der Beschriftungen auf opak definitiv der richtige Weg, um eine gute Bildlaufleistung zu erzielen.

Der richtige Weg, dies zu tun, ist die Deklaration einer Unterklasse von UITableViewCell und überschreiben Sie die setBackgroundColor-Methode wie folgt und geben Sie die Hintergrundfarbe an jedes Element der Zelle weiter:

- (void) setBackgroundColor:(UIColor *)color {
    [super setBackgroundColor:color];
    [titleLabel setBackgroundColor:color];
    [imageView setBackgroundColor:color];
    [timeLabel setBackgroundColor:color];
}

Ich habe dies als Dateieigentümer der XIB verwendet, in der die Tableview-Zelle definiert ist, und habe die UI-Elemente mit Ausgängen in dieser benutzerdefinierten Unterklasse verbunden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X