UITableView scrollToRow funktioniert nicht mehr direkt nach dem Hinzufügen einer neuen Zeile auf iOS 11

8

Ich habe ein seltsames UITableView-Verhalten bemerkt, das anscheinend nur auf iOS 11-Geräten auftritt.

Gleich nach dem Einfügen einer neuen Zeile (Ändern der Datenquelle und anschließendem Aufruf von reloadData wird UITableView nicht zu dieser Zeile blättern, wenn scrollToRow oder scrollToBottom() method aufgerufen wird.

Wenn Sie etwas auf iOS 10 oder früher tun, funktioniert es einwandfrei und UITable scrollt wie es soll.

Danke!

    
Guy 06.09.2017, 12:39
quelle

4 Antworten

3
%Vor%

Das Hinzufügen einer kleinen Verzögerung funktioniert in meinem Fall.

    
Amos Hsueh 26.09.2017, 11:14
quelle
1

Akzeptierte Antwort in Swift 4 Syntax

%Vor%     
Maverick 28.11.2017 12:10
quelle
0

Ich bin mir nicht sicher, ob die Situation, der ich begegnet bin, auf diese Frage zutrifft, aber ich hatte auch eine Situation, in der UITableView.scrollTo... sich von iOS 11 aus falsch benommen hat.

In meinem Fall habe ich UITableView.reload... und UITableView.scrollTo... nacheinander aufgerufen. Und es hat sich herausgestellt, dass die Reihenfolge zählt.

Das funktioniert:

%Vor%

Das tut nicht:

%Vor%

Hoffentlich hilft das.

    
barley 13.12.2017 23:30
quelle
0

Nur DispatchQueue.main.async funktioniert für mich.

    
cocoapriest 22.03.2018 17:46
quelle

Tags und Links