0

Ich habe eine Mac OS-Anwendung, die ein Tab-Bar-Design enthält (zB: Tweetbot). Es gibt 4 Registerkarten, die mit 4 verschiedenen View-Controllern verknüpft sind. Der erste View-Controller (siehe Ansicht 1) enthält eine , die 3 Zellen horizontal anzeigt.NSCollectionView Änderungen der Zellenreihenfolge bei Änderung der Ansicht

Das funktioniert alles gut, aber wenn ich zu einem anderen View-Controller wechseln und dann zum ursprünglichen View-Controller zurückkehre, ändert sich die Reihenfolge der Collection-Ansicht ohne Grund. Ich mache keine Änderungen an der Datenquelle (das ist ein NSMutableArray) und ich bin nicht hinzufügen/Löschen von Zellen, noch rufe ich reloadData. Ich verstehe nicht, warum sich die Reihenfolge der Sammlungsansichtszellen ständig ändert.

Ich habe einige Tests durchgeführt und kann bestätigen, dass die Reihenfolge der Daten in meiner Datenquelle sich überhaupt nicht ändert. Es macht also keinen Sinn für die Sammlungsansicht, nur die Reihenfolge der Zellen zu ändern.

Ein weiteres seltsames Problem, das ich bemerkt habe, ist, dass dieses Problem nicht auftritt, wenn ich die Sammlungsansicht auf 2 Zellen beschränke. Das lässt mich fragen, ob oder nicht, ist das Problem auf eine Art Caching-Methode, die im Hintergrund läuft? Wenn die Sammlungsansicht eine Zelle recycelt, verwendet sie möglicherweise die falschen Daten ??

Ich habe viele verschiedene Lösungen ausprobiert, nichts scheint zu funktionieren. Hat jemand irgendwelche Ideen, was ich testen/ausprobieren kann, um herauszufinden, was falsch ist?

Alternative Idee

konnte ich NSTableView stattdessen verwenden, weil es mehrere Spalten unterstützt (im Gegensatz zu UITableView). Also könnte ich einfach eine NSTableView mit 3 Spalten machen. Wäre dieser Ansatz eine schlechtere Leistung, als eine (vor allem, wenn ich viele Zellen hinzufügen wollte?).

Danke für Ihre Zeit, Dan.

+0

Zeigen Sie Ihren Code für "itemForRepresentedObjectAt" – brianLikeApple

Antwort

0

Ich konnte nicht herausfinden, was mit der Sammlungsansicht falsch war. So endete ich mit einem NSTableView mit mehreren Spalten (anstelle von Collection-View-Zeilen). Ich setze jede Spalte auf eine Zeile (Index 0), wodurch die Tabellenansicht genau so aussieht wie in der Sammlungsansicht, mit der ich gearbeitet habe.

Leistung scheint die Tabellenansicht auch viel besser zu sein. Selbst mit Hunderten von Spalten ist es beim Scrollen/Interagieren immer noch schön und flüssig.

+2

Ich wette, Sie verwenden NSCollection falsch. Es sollte nicht so sein, deshalb habe ich nach dem Code gefragt, wie Sie die Daten präsentieren. Es hängt davon ab, was Sie tun möchten, aber die Ansicht "Sammlung" hat offensichtlich eine bessere interaktive Ansicht, wenn Sie die Größe des Fensters ändern. Überprüfen Sie iBooks-Anwendung, es verwendet NSCollectionView. NSTableView hat eine bessere Leistung, aber ich verwende es nur für die Rasteransicht. – brianLikeApple

Verwandte Themen