2016-12-08 3 views
1

Dies ist eine theoretische Frage hinsichtlich der Speicherverwaltung, mehrere gestapelte Ansichten gleichzeitig geöffnet zu haben.iOS-Speicherleistung in Bezug auf mehrere gleichzeitige Ansichten

Stellen Sie sich einen Stapel Zunderkarten vor (die eine unbestimmte Länge haben können), gekoppelt mit der Fähigkeit eines Benutzers, nach links, rechts, vor und zurück zu wischen. Mit hin und her, ich meine, dass anstelle der Ansicht, die den Bildschirm verlässt und (schließlich) recycelt oder freigegeben wird, er zumindest seine Form (wenn nicht seinen Inhalt) behalten muss, um genau auf den Bildschirm zurückgestellt zu werden, wenn a Der Benutzer wischt sich zurück.

Ich bin neugierig, was die Speicher Auswirkungen davon wäre. Ich schätze, dass Sie nach einem bestimmten willkürlichen Punkt die Karte löschen, aber ihren Platz im Stapel behalten. Wenn die Karte nah genug ist, um auf dem Bildschirm zurückkehren zu können, ziehen Sie einfach den Inhalt aus der API. Wenn die Anzahl der Aufrufe jedoch zu groß wird (> 100), führt dies nicht zu Leistungsproblemen.

Natürlich muss es einen Weg geben, damit umzugehen, da Sie beliebig lange Listen auf iOS mit Scroll-Ansichten/Tabellenansichten erstellen können. Aber ich denke, ich brauche eine Tabellenansicht wie eine Performance ohne die Notwendigkeit einer Tabellenansicht.

Gibt es eine Standardmethode zur Behandlung dieses Problems?

Antwort

0

Es ist schwierig, dies ohne eine konkrete visuelle Antwort zu beantworten, aber ich vermute, dass Sie nie mehr als zwei oder drei Karten rendern müssten, um den gewünschten Effekt zu erzielen. Es wäre nicht schwer, eine benutzerdefinierte Ansicht zu schreiben, die die Karten, wenn sie die zweite oder dritte Position erreichen (abhängig von der Benutzeroberfläche), langsam darstellt.

Alternativ können Sie dies mit einer UICollectionView und einer benutzerdefinierten UICollectionViewLayout Unterklasse implementieren, um die Karten zu stapeln.