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?
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.
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!
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
Tags und Links ios animation caching image-manipulation uiimageview