Kann UIImageView Bilder zwischenspeichern?

7

Wahrscheinlich werde ich dieselbe Frage stellen, die von einer anderen Person gestellt wurde (aber es hat keine Antworten):
Beschleunige die erste UIImageView-Animation (forciere die Bilder)

Aber, meine kurze Frage ist:
Ich habe 60 Bilder in Ressourcen, in der Zeitschleife werde ich diese Bilder animieren, wobei jedes Mal UIImageView.image das n'th Bild von resouce eingestellt wird.

Das Problem ist: erste Animation ist schlecht! Wenn ich alle Bilder erneut in derselben UIImageView-Schleife wiederhole, ist die Animation perfekt. Können wir Bilder in UIImageView vorcachen?

BEARBEITEN: Oder können wir vielleicht ein paar Tricks machen, um Animationen zu vereinfachen?

    
Almas Adilbek 25.11.2011, 14:08
quelle

3 Antworten

17

Die Methode %Code%  speichert das Bild zwischen. Die UIImageView nicht. Ich hatte ein Problem in einer App mit vielen Bildern, die wegen zu wenig Speicherplatz abstürzten. Um zu beheben, wenn ich in [UIImage imageNamed:@""] geändert habe, das das Bild nicht zwischenspeichert.

Um das Bild vorab zwischenzuspeichern, können Sie einfach [UIImage imageWithContentsOfFile:@""] für alle gewünschten Bilder in der init-Methode aufrufen. Aber wenn Sie eine Speicherwarnung erhalten, werden die Bilder freigegeben.

    
Bruno Domingues 25.11.2011, 17:05
quelle
4

UIImageView speichert das Bild nicht zwischen, wie es [UIImage imageNamed:@""] tut. Leider, wenn Sie viele Bilder haben, wird imageNamed Ihre Anwendung zum Absturz bringen, weil nicht genug Speicher zur Verfügung steht.

Sie können alle Bilder in einem NSArray mit [UIImage imageWithContensOfFile:@""] vorladen. Sobald Sie das Array haben, können Sie tun, was Sie wollen!

    
Pablosproject 25.11.2011 17:15
quelle
2

Nein, UIImageView speichert Bilder nicht zwischen. image property als retain deklariert. Wenn Sie also ein neues Image setzen, sendet imageView die Nachricht release an altes Image und retain an neues Image.

Der einfachste Weg, um UIImageView zu animieren, besteht darin, ein Array von Bildern auf die Eigenschaft animationImages zu setzen und startAnimating Methode

%Vor%     
beryllium 25.11.2011 16:26
quelle