2

Ich habe eine UICollectionView, deren Artikel eine imageview enthalten, auf die ich CIFilters anwende. Es gibt also ungefähr 12 Elemente, die erzeugt werden, aber wenn ich Elemente in der Sammlungsansicht scrolle, entsteht ein kleiner Fehler, wenn ein neues Objekt erzeugt wird. Gibt es eine Möglichkeit, Elemente von UICollectionView ohne diese Verzögerung zu konfigurieren.Leistungsproblem in UICollectionView

Momentan verwende ich Filter in cellForItemAtIndexPath Delegate Methode von UICollectionView.

Antwort

0

Sie generieren CIImage, CIFilter, UIImage jedes Mal, wenn die Zelle angezeigt wird. Denken Sie daran, dass cellForItemAtIndexPath immer dann aufgerufen wird, wenn die Zelle gerade angezeigt wird. Wenn der Benutzer scrollt und zurückkehrt, wird diese Funktion erneut ausgeführt.

Sie sollten alle Bilder einmal in der Methode init() erstellen und sie im Array speichern. Verwenden Sie dann die Bilder in dieser Funktion, um sie anzuzeigen.

+0

Wenn ich ein Array von Bildern in der Methode init() erstelle, wird das Array nicht viele Bilder enthalten, da ich ein einziges Bild zum Filtern habe. – ankit

+0

Ja, es wird es halten. Aber es ist besser als jedes Mal Bilder zu erstellen. Dies wird gelöscht/Garbage-gesammelt, wenn der übergeordnete Controller gelöscht wird, zum Beispiel, wenn Sie UICollectionView in UIViewController angezeigt, so dass wenn UIViewController ist die UICollectionView gelöscht mit seiner Variablen auch gelöscht. –

+0

sicher, dass wird definitiv helfen! – ankit