Ich habe eine Tabellenansicht, die Platzhalter enthält, während sie in Bilder geladen wird. Wenn das Bild geladen ist, rufe ich reloadRowsAtIndexPaths:withRowAnimation:
. An diesem Punkt ändert die Zelle die Höhe, basierend auf der Größe des Bildes. Wenn das passiert, möchte ich, dass der Inhaltsversatz der Tabellenansicht an Ort und Stelle bleibt und die darunter liegenden Zellen weiter nach unten geschoben werden, wie Sie sich vielleicht vorstellen können.UITableView scrollt nach oben, wenn Zellen mit wechselnden Zellenhöhen neu geladen werden
Der Effekt, den ich bekomme, ist, dass die Bildlaufansicht zurück nach oben scrollt. Ich bin nicht sicher, warum das so ist, und ich kann es anscheinend nicht verhindern. Putting beginUpdates()
vor und endUpdates()
nach der reloadRows
Zeile hat keine Wirkung.
Ich verwende estimatedRowHeight
, wie erforderlich ist, da meine Tabellenansicht potenziell Hunderte von Zeilen unterschiedlicher Höhe haben kann. Ich implementiere auch tableView:heightForRowAtIndexPath:
.
EDIT: Ich habe ein Demo-Projekt eingerichtet, um dies zu testen, und zugegebenermaßen kann ich das Demo-Projekt nicht bekommen, diesen Effekt zu reproduzieren. Ich werde weiter daran arbeiten.
Können Sie den Code posten, den Sie verwenden, um den Inhaltsoffset und die Einstellung des TableViews zu erhalten, wo der Tabellenansichtsfokus bleiben soll? –