Aparecen imágenes incorrectas en UITableviewcell

Estoy usando GCD para cargar imágenes de la web en mi UITableViewCell. Pero, aparecen imágenes incorrectas.

Aquí está el código:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    UITableViewCell *cell = [self.newsTable dequeueReusableCellWithIdentifier:@"newsTableCell"];
    NSString *user = [usernames objectAtIndex:[indexPath row]];
    NSString *stat = [statistics objectAtIndex:[indexPath row]];
    NSString *imagePath = [appDelegate.URL stringByAppendingString:@"ImageName"];
    UIImageView *userImageView = (UIImageView *)[self.view viewWithTag:80];


        NSString *imagePath1 = [imagePath stringByAppendingString:[imagepaths objectAtIndex:[indexPath row]]];

        NSURL *url = [NSURL URLWithString:imagePath1];
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
    dispatch_async(queue, ^{
        NSData *data = [NSData dataWithContentsOfURL:url];
        UIImage *img = [[UIImage alloc] initWithData:data];
        userImageView.layer.cornerRadius = 5.0;
        userImageView.layer.masksToBounds = YES;
         dispatch_sync(dispatch_get_main_queue(), ^{
        [userImageView setImage:img];
         });
    });
 return cell
}

Por favor, avíseme dónde me estoy equivocando.

preguntado el 16 de abril de 13 a las 08:04

Ramu Pasupuleti, ¿puede explicar qué resolvió exactamente su problema? ya que tengo exactamente el mismo problema -

@Jonathan, estoy cargando las imágenes usando etiquetas. entonces, lo reemplacé con una clase UITableViewCell personalizada. -

oh, está bien, ¿pero Cell no habría resuelto el problema también? -

1 Respuestas

No estás usando nada de tu cell variable, está configurando imágenes en un UIImageView que viene de self.view. Las imágenes nunca se colocarán correctamente en las celdas de la tabla.

Respondido 16 Abr '13, 10:04

Gracias por la respuesta. Ahora las imágenes aparecen correctamente, pero las imágenes se cargan solo mientras se desplaza. - Ramu Pasupuleti

Este es el comportamiento recomendado, los dispositivos móviles están limitados en ancho de banda y RAM, por lo que perjudicaría al usuario descargar, digamos, cientos de imágenes solo porque se muestra el encabezado de la tabla. Sin embargo, si es absolutamente necesario hacer esto, recomendaría recuperar las imágenes del método de creación de celdas (tal vez en viewDidAppear) y luego solo asignarlas a la celda visible cada vez que terminen de cargarse o cuando se desplace la tabla y se abra una nueva celda. fuera de cola para una imagen ya descargada. - Grzegorz Adam Hankiewicz

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