2017-05-18 7 views
1

Meine Sport-App verfolgt, wer auf dem Feld ist und wie lange. Ich habe normalerweise 20-30 Leute während der Trainingszeit zu tauschen. Ich habe einen Timer, um die sichtbaren Zellen der Sammlungsansicht jede Sekunde neu zu laden. Das Nachladen der gesamten Sammlungsansicht kann zwischen 120-150 ms kosten.UICollectionView jede Sekunde neu laden

Die Scroll-Performance ist gut, aber manchmal reagiert das Antippen der Player nicht. Ich denke, das ist, wenn die Sammlungsansicht versucht, die Zellen neu zu laden.

kann ich sehen, könnte es ein paar Möglichkeiten:

  • Verwenden UITableView, mit jeder Zeile 4 verschiedene Elemente haben.
  • Verwenden Sie UIScrollView und laden Sie alle Elemente dort vor. Früher haben wir hier die Bibliothek KKGridView benutzt, aber sie ist sehr veraltet. Deshalb sind wir auf UICollectionView nach 6-7 Jahren bewegen

Haben jemand das gleiche Problem hatte, und die Art und Weise sollte die akzeptable Maß an Effizienz bieten, aber nicht zu komplex zu implementieren (um die Anzahl der Fehler zu reduzieren)

CollectionView

+0

Sie könnten das erneute Laden während des Scrollens deaktivieren, z. http://StackOverflow.com/A/993304/22147 –

+0

das würde nicht helfen, ich habe keine Probleme mit dem Scrollen – vodkhang

+0

hoppla, tut mir leid, verpasst das. Sie könnten die Zelle selbst neu laden, ohne die Sammelansicht zu fragen. –

Antwort

1

Halten sie die Aufzeichnung der Index der Zelle, die aus der Sammlung Ansicht, Call-Methode bitten, es sich selbst zu aktualisieren bekommen, dann die Zelle zu aktualisieren, drücken sie die Ansicht Update auf die Zellklasse, es wird nicht Chaos mit Ihrem Sammlungsansicht Tippen/Ziehen ...

Neu laden collectionView wird nur benötigt, wenn sich die gesamte dataSource ändert, deins wird einfach Zelle für Zelle aktualisiert, wie ich feststelle

Verwandte Themen