UICollectionView ohne Zellen erneut zu verwenden

8

Nur neugierig, ist es möglich, die Wiederverwendungsfunktion auf UICollectionview zu deaktivieren? Ich habe eine begrenzte Anzahl von Zellen, die variieren können, aber die Reinitialisierung der Zelle könnte ein wenig schwer sein und ich bin besser dran, sie nicht wiederzuverwenden. Versuchen, die Zelle ohne dequeueReusableCellWithReuseIdentifier zu initialisieren, bekomme ich die Ausnahme:

  

NSInternalInconsistencyException ', Grund:' Die von collectionView zurückgegebene Ansicht: cellForItemAtIndexPath: wurde nicht durch Aufrufen von -dequeueReusableCellWithReuseIdentifier: forIndexPath abgerufen.

    
vuuduu 06.07.2014, 21:51
quelle

2 Antworten

7
  

die Reinitialisierung der Zelle könnte ein wenig schwer sein

Es ist unwahrscheinlich, dass das Zurücksetzen des Inhalts einer Zelle teurer ist als das Erstellen einer neuen Zelle - der Sinn der Wiederverwendung von Zellen besteht darin, die Leistung zu verbessern, indem die Notwendigkeit vermieden wird, ständig neue Zellen zu erstellen.

  

Versuchen, die Zelle zu initialisieren, ohne dequeueReusableCellWithReuseIdentifier Ich bekomme die Ausnahme:

Ich würde das als starkes Indiz dafür nehmen, dass die Antwort auf Ihre Frage nein lautet. Außerdem Die Dokumentation sagt :

  

... Für die Sammlungsansicht müssen Sie die Sichten immer aus der Warteschlange entfernen, anstatt sie explizit in Ihrem Code zu erstellen.

Also nochmal, nein .

    
Caleb 06.07.2014, 22:25
quelle
4

Um die Wiederverwendung von Zellen zu deaktivieren, entfernen Sie einfach Ihre Zelle mit einem spezifischen Bezeichner für diesen Zellindexpfad und registrieren diesen Bezeichner vorher.

%Vor%

Beachten Sie, dass die Wiederverwendung in der obigen Methode nicht vollständig deaktiviert ist, da es für jede Zelle eine Kennung gibt, die wahrscheinlich jeder benötigt. Aber wenn Sie die Wiederverwendung von Zellen vollständig deaktivieren müssen, können Sie Folgendes tun:

%Vor%

WICHTIG : Ich beantworte nur die Frage hier, das ist komplett nicht empfohlen , besonders diese zweite Methode. Ich benutze diese erste Methode in einem Fall, in dem ich multidirektionales Scrollen habe und es gibt einige Delegiertenmethoden bezüglich der Fokussierung auf tvOS, die ich für jede Zelle aufrufen muss.

    
Alejandro Cotilla 29.02.2016 21:57
quelle

Tags und Links