Probabilmente sarò la stessa domanda che è stato chiesto da altra persona (ma non ha risposte):
Speed up first UIImageView animation (force cache the images)
Ma, la mia domanda è: a breve
ho 60 immagini in risorse, in TimeInterval ciclo I animerò quelle immagini, ogni volta impostando su UIImageView.image l'immagine n'1 da resouce.
Il problema è: prima animazione è male! Quando eseguo nuovamente il ciclo di tutte le immagini nello stesso UIImageView, l'animazione è perfetta. Possiamo pre memorizzare le immagini in UIImageView?
MODIFICA: O forse possiamo fare qualche trucco, per rendere l'animazione regolare?Le immagini della cache di UIImageView?
risposta
Procedimento [UIImage imageNamed:@""]
cache l'immagine. UIImageView non lo fa. Ho avuto un problema in un'app con molte immagini che si bloccavano a causa della poca memoria. Da correggere se ho cambiato in [UIImage imageWithContentsOfFile:@""]
che non memorizza l'immagine nella cache.
Per pre-memorizzare l'immagine, è sufficiente chiamare [UIImage imageNamed:@""]
per tutte le immagini desiderate nel metodo init. Ma se ricevi un avvertimento di memoria, le immagini saranno deallocate.
No, UIImageView non memorizza nella cache le immagini. image
proprietà dichiarata come mantenuta, quindi quando si imposta la nuova immagine, quindi imageView invia il messaggio release
alla vecchia immagine e retain
a quello nuovo.
Il modo più semplice per animare UIImageView è impostare serie di immagini di proprietà animationImages
e chiamare startAnimating metodo
imageView.animationImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"1.png"], ..., nil];
imageView.animationDuration = 2.0f;
[imageView startAnimating];
Ma, hai mai provato ad animare 100 immagini, ciascuna con dimensioni 850x535 usando UIImageView.animationImages? L'ho provato, l'app si è bloccata a causa della memoria .. La ragione per cui penso è, perché animationImages contiene tutte le immagini, che sono un sacco di memoria. O, sto dicendo qualcosa di sbagliato ?? Se è così, per favore correggimi. Thx –
Sì, immagino che tu abbia esattamente ragione. In questo modo è più semplice, ma non efficiente come puoi vedere. – beryllium
Cosa pensi, dovrei usare qualche libreria grafica per giocare con immagini grandi, mantenendo le prestazioni buone? Conosci qualche? Thx –
UIImageView non memorizza nella cache l'immagine, come fa [UIImage imageNamed:@""]
. Sfortunatamente, se hai molte immagini, imageNamed bloccherà la tua applicazione perché esaurisce la memoria.
È possibile precaricare tutte le immagini in un NSArray utilizzando [UIImage imageWithContensOfFile:@""]
. Una volta che hai la matrice, puoi fare quello che vuoi!
Penso che sia strano! .. NSArray manterrà anche la memoria delle immagini dentro di sé, così come le immagini memorizzate nella cache da imageNamed. O? –
- 1. Cancellazione della cache delle immagini di Picasso
- 2. Memorizzazione nella cache in AFNetworking + UIImageView non rispetta le norme della cache http? (Si spera sbaglio)
- 3. ASP.NET MVC: rende le immagini della cache del browser dall'azione
- 4. Come posso lasciare che le immagini intermedie della cache di immagini DinD di gitlab-ci-runner?
- 5. Immagini retina/non retina in UIImageView
- 6. Le informazioni di autenticazione della cache JBoss?
- 7. Il browser memorizza nella cache le immagini di sfondo CSS?
- 8. Ottenere la matrice di immagini in UIImageView (in UIPageViewController)
- 9. Come posso escludere le immagini dal busting della cache di Rails?
- 10. Come Picasso effettivamente memorizza le immagini nella cache
- 11. Perché le voci della directory della cache readdir() di Perl?
- 12. Creazione di UIImageView grigio
- 13. forza browser per rileggere le immagini memorizzate nella cache
- 14. Come recuperare le immagini dalla memoria cache in picasso?
- 15. Mancano le intestazioni di controllo della cache di Cloudfront
- 16. Immagini pre-cache per la UIImage di AFNetworkingVisualizza categoria
- 17. Come verificare se le immagini provengono dalla cache
- 18. Come cancellare le voci della cache APC?
- 19. Immagini cache del browser fornite da Dropbox
- 20. UIImageView, setClipsToBounds e come le mie immagini stanno perdendo la testa
- 21. Cancellazione della cache di UIWebView in Swift
- 22. Docker cache immagini hub non sembra funzionare
- 23. problema di nibernazione della cache con le query di linq
- 24. La cache di immagini di gridview di Android, su scroll, le immagini vengono ripetute prima di essere sostituite
- 25. Problema di memorizzazione nella cache delle immagini dinamiche di IE?
- 26. Possono le istruzioni atomiche scavalcare le linee della cache?
- 27. Memorizzazione nella cache delle immagini in Memcached
- 28. Regola UIImage in UIImageView
- 29. migliorare la località e ridurre l'inquinamento della cache in un'implementazione di ricostruzione di immagini mediche
- 30. IIS 7.5 e immagini non in cache
Forse, ma parliamo di UIImageView, non di UIImage – beryllium
Siamo spiacenti. Risolta la risposta. –
SÌ! Durante l'app di profilazione con l'uso di 'imageNamed', la mia app ha una memoria di 120 MB, quando la memoria' imageWithContentsOfFile' usata è 15mb.Ma sfortunatamente non risolve il problema di animazione brutto ( –