¿Cómo mostrar el progreso de la descarga en una UITableViewCell personalizada con ASIHTTPRequest?

Estoy tratando de implementar una lista de paquetes de idiomas que se pueden descargar seleccionando un UITableViewCell personalizado que contiene un UIProgressBar. Para cada paquete de idioma, quiero mostrar el progreso de la descarga. Lo hago configurando este delegado setDownloadProgressDelegate:.

Todo funciona muy bien, excepto cuando UIProgressBar se mueve fuera del área visible. Esto tiene sentido porque se elimina la barra de progreso de los delegados. ¿Qué puedo hacer para evitar que la aplicación se bloquee y cómo puedo mostrar la barra de progreso si vuelve al área visible?

Hier es una imagen para ver cómo se ve ahora mismo.

UITableViewCell personalizado con UIProgressBar

Gracias

preguntado el 08 de noviembre de 11 a las 09:11

Recientemente escuché la trágica noticia de que el desarrollador de ASIHTTPRequest ha dejado de trabajar en él y recomienda cambiar a otro paquete de cliente HTTP. Solo para tu información. Detalles en el blog de su sitio. -

Oh, es triste aquí eso. ¿Tienes alguna otra recomendación? -

1 Respuestas

Supongo que podría usar una clase propia (o incluso el controlador de vista) como delegado de progreso. En su controlador de vista, puede contener una serie de referencias a todas las barras de progreso actualmente en uso. Debería crear una barra de progreso por descarga y mantenerla en la matriz (por lo tanto, el objeto no se destruiría). Cada vez que se crea una celda, ahora debe verificar su matriz para el objeto de barra de progreso correspondiente en lugar de crear uno nuevo. Siempre que se realiza una descarga y la barra de progreso ya no es necesaria, la elimina de la matriz.

Tenga cuidado con los posibles problemas de subprocesos múltiples y, si es necesario (por ejemplo, si sus notificaciones pueden llegar en otro hilo que el hilo principal) utilice performSelectorOnMainThread: para actualizar la matriz de la barra de progreso y las barras de progreso dentro.

respondido 08 nov., 11:15

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.