uitableviewdatasource uitableviewcontroller uitableviewcell number example iphone cocoa-touch uitableview image lazy-loading

iphone - uitableviewcell - uitableviewcontroller swift 4



Imágenes de carga lenta en UITableViewCell (7)

Acabo de abordar con éxito el mismo problema mediante el uso de una NSOperation personalizada para cargar las imágenes en un fasion queing y las almacené en un NSMutableDictionary estático como un caché. A continuación hay un enlace a la base del código que utilicé para resolver el problema.

Cargando imágenes remotas para UITableViewCell

Lo mejor es leer todos los temas en el foro para ayudarlo a comprender lo que está sucediendo realmente.

Tengo unas 50 celdas personalizadas en mi UITableView. Quiero mostrar una imagen y una etiqueta en las celdas donde obtengo las imágenes de las URL.

Quiero hacer una carga lenta de imágenes para que la IU no se congele mientras se cargan las imágenes. Traté de obtener las imágenes en hilos separados, pero tengo que cargar cada imagen cada vez que una celda se vuelve visible de nuevo (De lo contrario, la reutilización de las células muestra imágenes antiguas)

Las aplicaciones como Facebook cargan imágenes solo para las celdas actualmente visibles y una vez que se cargan las imágenes, no se cargan nuevamente. ¿Puede alguien decirme cómo duplicar este comportamiento?

Gracias.

Editar
Intentar guardar imágenes en un objeto NSMutableDictionary crea problemas cuando el usuario se desplaza rápidamente. Estoy obteniendo imágenes solo cuando el desplazamiento se detiene por completo y borrando la caché en la advertencia de memoria. Pero la aplicación invariablemente recibe una advertencia de memoria (debido al tamaño de las imágenes que se almacenan en caché) y borra la memoria caché antes de volver a cargarla. Si el desplazamiento es muy rápido, se bloquea.

Cualquier otra sugerencia es bienvenida


Cargar las imágenes en un hilo de fondo sigue siendo una buena idea. Si no desea volver a cargarlos cada vez, le sugiero configurar un NSMutableDictionary y almacenar las imágenes allí. Puede usar algún identificador único, como la Id. De fila o incluso el nombre de la imagen, como clave para cada imagen.

Al cargar una celda, debe enviar un mensaje objectForKey al NSMutableDictionary para recuperar la imagen de esa celda en particular (en función de su clave única). Si devuelve nil, eso significa que la imagen no está en la memoria caché y necesita que su imagen de fondo cargue el hilo para ir a recuperarla. De lo contrario, obtendrá la imagen adecuada para que se muestre su celda de tabla. En una advertencia de memoria, podría borrar este caché de imágenes sin efectos adversos (aparte de forzarlos a volver a cargarse a pedido).


Este es un Tutorial sobre NSOperation con un ejemplo que muestra cómo cargar imágenes cargadas en UITableViewCell


La carga diferida es como una solicitud de tipo síncrono ... significa esperar para responder

botón de imagen del ego es la solución para eso ...

El botón de imagen del ego es una solicitud de tipo asíncrono ... no espere a responder ... solo muestra datos a la vez ...

puedes descargar la carpeta de github ....

agregar a su proyecto ...

en la vista de imagen de xib..at, cambie el botón de imagen de clase a ego ...

hacer objeto de ello en m archivo ...

puedes usar.....


Para aquellos que están interesados, y son perezosos como yo, me gustaría sugerir una implementación de código abierto (licencia MIT) de la red perezosa / en caché de imágenes SDWebImage : SDWebImage



perdido en el transito,

Tengo un problema similar y, al explorar las diferentes soluciones posibles, encontré esta publicación en el blog:

davidgolightly.blogspot.com/2009/02/asynchronous-image-caching-with-iphone.html

También le sugiero que descargue el ejemplo de URLCache del sitio web para desarrolladores de Apple:

developer.apple.com/iphone/prerelease/library/samplecode/URLCache /

Y aquí hay otra publicación sobre el problema:

www.markj.net/iphone-asynchronous-table-image/

Me encantaría que compartieras tus hallazgos también.