Probablemente me voy a la misma pregunta que fue hecha por otra persona (pero no tiene las respuestas):
Speed up first UIImageView animation (force cache the images)
Pero, Mi pregunta corta es:
tengo 60 imágenes en los recursos, en bucle I TimeInterval Voy a animar esas imágenes, configurando cada vez a UIImageView.image la n'th imagen desde el recurso. El problema es: primera animación es malo! Cuando vuelvo a enlazar todas las imágenes en el mismo UIImageView, la animación es perfecta. ¿Podemos precachear imágenes en UIImageView?
EDITAR: ¿O tal vez podamos hacer algunos trucos para que la animación sea fluida?¿UIImageView imágenes de caché?
Respuesta
El método [UIImage imageNamed:@""]
cachés de la imagen. UIImageView no. Tuve un problema en una aplicación con muchas imágenes que se bloquea debido a la poca memoria. Para corregir si cambié a [UIImage imageWithContentsOfFile:@""]
que no almacena en caché la imagen.
Para precachear la imagen, simplemente puede llamar al [UIImage imageNamed:@""]
para todas las imágenes que desee en el método init. Pero si recibe una advertencia de memoria, las imágenes serán desasignadas.
No, UIImageView no almacena imágenes en caché. image
propiedad declarada como retener, por lo que cuando establece una nueva imagen, entonces imageView envía el mensaje release
a la imagen anterior y retain
a uno nuevo.
La forma más fácil para animar UIImageView es fijar serie de imágenes a la propiedad animationImages
y llame startAnimating método
imageView.animationImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"1.png"], ..., nil];
imageView.animationDuration = 2.0f;
[imageView startAnimating];
Pero, ¿alguna vez ha intentado animar 100 imágenes, cada una con un tamaño de 850x535 usando UIImageView.animationImages? Lo he intentado, la aplicación se colgó debido a la memoria ... La razón por la que creo que es, porque las imágenes animadas contienen todas las imágenes, que son mucha memoria. O, ¿estoy diciendo algo malo? Si es así, por favor corrígeme. Thx –
Sí, supongo que tienes razón. De esta manera es más fácil, pero no eficiente como puedes ver. – beryllium
¿Qué piensas, debería usar alguna biblioteca de gráficos para jugar con imágenes grandes, manteniendo el rendimiento bueno? ¿Conoce alguna? Thx –
UIImageView no almacena en caché la imagen, como [UIImage imageNamed:@""]
. Desafortunadamente, si tiene muchas imágenes, imageNamed bloqueará su aplicación porque se queda sin memoria.
Puede precargar todas las imágenes en un NSArray usando [UIImage imageWithContensOfFile:@""]
. ¡Una vez que tenga la matriz, puede hacer lo que quiera!
¡Creo que es extraño! .. NSArray también mantendrá la memoria de las imágenes dentro de sí misma, así como las imágenes almacenadas en caché por imageNamed. ¿O? –
- 1. Pre-caché Imágenes para la categoría UIImageView de AFNetworking
- 2. Imágenes de retina/no retina en UIImageView
- 3. Obtener una matriz de imágenes en UIImageView (en UIPageViewController)
- 4. HTML5 iPhone caché dinámico de imágenes
- 5. Expiración de caché en imágenes estáticas
- 6. Almacenamiento en caché de imágenes en Memcached
- 7. Borrar caché CATiledLayers al cambiar imágenes
- 8. Proporción de aspecto en UIImageView
- 9. Resize UIImageView en UITableViewCell
- 10. Haciendo un UIImageView gris
- 11. Redimensionar UIImage en UIImageView
- 12. Delayed UIImageView representación en UITableView
- 13. Caché HTML5 de imágenes en canvas/preguntas de putImageData
- 14. Almacenamiento en caché de imágenes de Android: ¿cómo?
- 15. ¿Qué biblioteca de almacenamiento en caché de imágenes para iOS?
- 16. create UIImageView
- 17. CALayer performance vs. UIImageView performance
- 18. iPhone: la mejor manera de detectar el final de la animación de secuencias de imágenes UIImageView
- 19. Activar caché de imágenes en modo desarrollo en Rails 3.1
- 20. almacenamiento en caché de imágenes servidas por servlet
- 21. ¿Mantiene Android las imágenes descargadas de HTTP en el caché?
- 22. Cómo comprobar si las imágenes son de caché
- 23. Caché de imágenes del sitio web con Apache
- 24. Crear miniaturas de imágenes y almacenarlas en caché
- 25. Almacenamiento de imágenes en caché con HJCacheClasses error
- 26. Forzar el almacenamiento en caché de imágenes con javascript
- 27. La mejor manera de transición entre dos imágenes en un UIImageView
- 28. Forzar navegador para volver a leer las imágenes en caché
- 29. IIS 7.5 e imágenes que no se almacenan en caché
- 30. Chrome no almacena en caché las imágenes/js/css
Tal vez, pero estamos hablando de UIImageView, no UIImage – beryllium
Lo siento. Se corrigió la respuesta. –
¡SÍ! Durante la aplicación de creación de perfiles con el uso de 'imageNamed', mi aplicación tomó 120mb de memoria, cuando se usa la memoria' imageWithContentsOfFile' es 15mb.Pero lamentablemente no resuelve el problema de la mala animación ( –