Erzwingen des Neuzeichnens von UITableViewCell

7

Ich habe diesen Beitrag auf Abgeschrägten UITableViewCells von Ссылка gefunden. Ich verwende die Technik, um die Breite der Zellen zu reduzieren, und größtenteils funktioniert es großartig.

Allerdings habe ich ein kleines Problem. Manchmal werden die Zellen nicht richtig neu gezeichnet. Zum Beispiel, obwohl eine Zelle eine "mittlere" Zelle sein soll, wird sie als "oberste" Zelle gezeichnet: yfrog.com/f1screenshot20100424at100

Wie kann ich das beheben?

Ich habe versucht, die Zelle dazu zu zwingen, über [Zelle setNeedsDisplay], [Zelle setNeedsLayout], [tableView reloadRowAtIndexPath: withAnimation:], [Zelle dredrect:] und [tableView drawRect: atIndexPath] neu zu zeichnen. Ich habe keine Ideen mehr.

Nochmals vielen Dank!

    
Suresh 24.04.2010, 17:12
quelle

2 Antworten

23

Stellt sich heraus, dass ich [cell.backgroundView setNeedsDisplay] am Ende von cellForRowAtIndexpath aufrufen musste.

    
Suresh 25.04.2010 07:33
quelle
1

Habe das selbe Problem gehabt, weil einige meiner cellForRowAtIndexpath in einem Hintergrundthread waren. Die Lösung in diesem Fall besteht darin, direkte Zellunterview-Aktualisierungen in den Hauptthread zu erzwingen:

%Vor%     
Cbas 25.04.2016 00:29
quelle

Tags und Links