Auf einem UITableView- oder UICollectionView-Gerät werden gegenüber den sichtbaren Zellen Ladevorgänge durchgeführt.

Mit der Einführung von iOS 10 scheint es, als hätten wirprefetching ist in UITableView und UICollectionViews standardmäßig aktiviert. Dies bedeutet, dass Zellen, die nicht auf dem Bildschirm angezeigt werden, abgerufen werden, bevor der Benutzer sie tatsächlich sieht.

Hier sind einige relevante Methoden:

UITableView:

cellForRowAtIndexPath:: kehrt zurück "nil wenn die Zelle nicht sichtbar ist. " visibleCells: Jedes Element steht für "eine sichtbare Zelle in der Tabellenansicht". indexPathsForVisibleRows: Jedes Element steht für "eine sichtbare Zeile in der Tabellenansicht".

UICollectionView:

visibleCells: "Gibt die vollständige Liste der in der Sammlungsansicht angezeigten sichtbaren Zellen zurück." indexPathsForVisibleItems: Jedes Element stellt "eine sichtbare Zelle in der Sammlungsansicht" dar.cellForItemAtIndexPath:: kehrt zurück "nil wenn die Zelle nicht sichtbar ist. "

Alle diese erwähnen ausdrücklich "sichtbar" in ihren Beschreibungen. Wie würde ich mit der Einführung des Vorabrufens in iOS 10 zwischen einer Zelle, die vorabgerufen wurde, und einer Zelle, die derzeit sichtbar ist, unterscheiden?

Mit anderen Worten

Wie bekomme ich alle sichtbaren Zellen?Wie bekomme ich alle geladenen Zellen?

Es sieht nicht so aus, als gäbe es neue APIs in UITableView oder UICollectionView, die dabei helfen könnten.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage