iOS 8 Autozellenhöhe - didSelectRowAtIndexPath bewirkt, dass UItableview zum Anfang springt

8

Ich aktualisiere gerade eine App auf iOS8 und ersetze meine eigenen Berechnungen für die Zellenhöhe. Ich habe eine Tabellenansicht mit einer Reihe von benutzerdefinierten Zellen. Jede ausgewählte Zelle zeigt eine neue Ansicht auf den navigationController. Wenn die Tabellenansicht mit diesen Zellen gefüllt ist und der Benutzer eine Tabelle am unteren Ende der Tabelle auswählt, springt die Tabellenansicht nach rechts oben, bevor die neue Ansicht angezeigt wird. Dies ist sehr ablenkend für den Benutzer. Ich versuche hier die Verwendung von Self-Sizing-Zellen, die in iOS 8 eingeführt wurden (in der viewDidLoad):

%Vor%

Hier ist der Code für die Auswahl einer Zelle

%Vor%

Weiß jemand, warum das passiert? Und wie kann ich es stoppen?

    
GoshDangitBobby 27.10.2014, 23:16
quelle

2 Antworten

5

Es ist ein bekanntes Problem. Die TabelleView ruft ihren Delegaten auf, um eine geschätzte Höhe für die Zeilen zu ermitteln, wodurch die Tabelle einen Bildlauf durchführt.

Sie können warten, um zu sehen, ob es in der nächsten Aktualisierung behoben wird, oder tableView:estimatedHeightForRowAtIndexPath: implementieren (als Workaround für jetzt) ​​und eine zwischengespeicherte Höhe zurückgeben. Da die Schätzung die tatsächliche Höhe ist, springt die Tabelle nicht.

    
user4151918 28.10.2014 07:31
quelle
1

Dies geschieht, wenn auf den Tabellendelegaten "didSelectRowAtIndexPath:" geklickt wurde. weil die Delegate-Methode "numbersOfSectionsInTableView" & amp; & amp; "numbersOfRowsInSection" wird aufgerufen. Es ist wie den Tisch neu zu laden.

Sie können diesen Sprungstatus mit dieser Methode "heightForRowAtIndexPath:" beheben, Sie müssen jedoch Ihre automatische Größenanpassung ignorieren.

    
nferocious76 21.01.2015 03:40
quelle

Tags und Links