Wenn ich reloadData-Methode von UICollectionView aufrufen, verursachen alle sichtbare Zelle zu blinken. Ich fand, dass der Grund dafür Erholung aller sichtbaren Zellen ist, während UITableView sichtbare Zelle in - tableView: cellForRowAtIndexPath: Methode nach dem Neuladen von Daten zurückgibt.UICollection-Ansicht reloadData Ursache Erstelle sichtbare Zelle neu
Also, wie kann ich die Wiederherstellung von sichtbaren Zellen in UICollectionView vermeiden.
Als ich reload für Tableview in 'Tableview nennen: cellForRowAtIndexPath:' Ich bekomme sichtbare Zelle mit zuvor geladenen Daten. Wenn ich zum Beispiel imageView und image nicht ändere, aktualisiere ich es nicht und vermeide es zu blinken. Aber für die Sammlungsansicht nach reloadData bekomme ich völlig neue Zelle - derzeit nicht sichtbar Zelle mit zuvor geladenen Daten. – abagmut
Ob Sie eine wiederverwendbare Zelle "bekommen", ist nicht spezifisch für die Tabellen- oder Sammlungsansicht, sondern eher für das Scrollen, das Sie gemacht haben oder für das vorherige Laden. Und Sie sollten die Zelle immer neu konfigurieren - woher wissen Sie, in welcher Zeile sie zuvor verwendet wurde? – Wain
Ich rufe reloadData auf, wenn collectionView nicht scrollt. Es ist nicht notwendig zu wissen, für welche Zeile es vorher verwendet wurde. Speichern Sie einfach den Bildnamen für das Bild, der gerade in der Zelle geladen ist, und wenn er nach dem Neuladen übereinstimmt (für TableView, wenn sich die Zellendatenquelle nicht ändert - ist sie wahr), tun Sie nichts. – abagmut