UICollectionView erhält in diesem Jahr eine neue Eigenschaft namens prefetchDataSource. Genau wie der vorhandene Delegate und dataSource Eigenschaften können wir es einfach auf ein Objekt setzen, das das Neue implementiert UICollectionViewDataSourcePrefetching-Protokoll.
Dieses Protokoll ist brandneu in iOS 10 und erfordert nur eine neue Funktion:
%Vor%Wenn diese Funktion aufgerufen wird, können wir das Array indexPaths untersuchen Wir sind hineingelaufen, um zu wissen, welche Zellen "bald kommen" und somit mit welchen Zellen wir die Daten wahrscheinlich laden sollten.
Für Detailverständnis mit Beispiel Verweislink UICollectionViewDataSourcePrefetching
Ich hatte das gleiche Problem nach der Aktualisierung von xcode 8 auf 8.1. Ich könnte es lösen, indem ich die (Outlets-Referenz) aus dem main.storyboard lösche.
Dies für jede CollectionView, die ich im Storyboard hatte. Lassen Sie auch meinen ViewController einfach so:
Klasse (YourViewControllername): (YourViewControllerType), UICollectionViewDataSource, UICollectionViewDelegate {
}
Dann kann ich meine App erstellen und ausführen
Wenn Sie allerdings (UICollectionViewDataSourcePrefetching) benötigen, empfehle ich Ihnen, dass Sie die aktuelle UICollectionView löschen und später eine neue UICollectioView erstellen. genau so können Sie UICollectionViewDataSourcePrefetching nach der Aktualisierung von xcode oder swift
verwendenImplementieren Sie das Protokoll "UICollectionViewDataSourcePrefetching" in Ihrem ViewController als
class ViewController: UIViewController, UICollectionViewDataSourcePrefetching {
Legen Sie die folgenden Delegaten für Ihre Sammlungsansicht im Storyboard fest (siehe angehängtes Bild) oder programmgesteuert
In ViewControllers Methode viewDidLoad
collectionView.delegate = self
collectionView.dataSource = self
collectionView.prefetchDataSource = self
Sehen Sie sich dieses Beispiel an - Ссылка
Protokoll hinzufügen "UICollectionViewDataSourcePrefetching" Und dann benutze untenstehende Funktionen.
collectionView(_ collectionView: UICollectionView, prefetchItemsAt indexPaths: [IndexPath])
collectionView(_ collectionView: UICollectionView, cancelPrefetchingForItemsAt indexPaths: [IndexPath])
Für Details siehe Link: Ссылка