UITableViewCell imageView no se muestra

Así que tenía el siguiente código:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *CellIdentifier = @"FriendsCell";

    FriendData * fd = [self.friendsDataSource_ objectAtIndex:indexPath.row];

    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

    [cell.imageView  setImageWithURL:[NSURL URLWithString:fd.imageUrl_]];
    [cell.imageView setFrame:CGRectMake(0, 0, 30, 30)];
    [cell.textLabel setText:fd.name_];

    return cell;
}

Sin embargo, no veo imageView en la celda. ¿Qué estoy haciendo mal?

preguntado el 22 de mayo de 12 a las 21:05

veamos tu método -setImageWithURL -

Junto con ver setImageWithURL:, estás seguro que fd.imageUrl_ no es nulo? -

sí, la url es válida y no es nula -

4 Respuestas

También tengo el mismo problema con SDImageCache. Mi solución es poner una imagen de marcador de posición con el tamaño de marco que desee.

 UIImage *placeholder = [UIImage imageNamed:@"some_image.png"];
 [cell.imageView setImage:placeholder];
 [cell.imageView setImageWithURL:[NSURL URLWithString:fd.imageUrl_]];

Respondido el 11 de junio de 12 a las 15:06

1) Establecer imagen con URL no es un método de iOS. Es algo personalizado y ese puede ser el problema. Pero hasta que lo publiques no puede ayudar allí.

2) Creo que cell.imageView ignorará "setFrame". No puedo hacer que eso funcione en ninguna de las celdas de mi tabla usando una imagen. Siempre parece predeterminado al ancho de la imagen.

3) Por lo general, configura la imagen usando cell.imageView.image = your_Image. ImageView es de SOLO LECTURA y probablemente el marco de ImageView sea privado.

4) Creo que necesitará crear una celda personalizada propia.

contestado el 23 de mayo de 12 a las 00:05

El uso de un método con marcador de posición lo arreglará.

[cell.imageView setImageWithURL:[NSURL URLWithString:fd.imageUrl_]placeholderImage:[UIImage imageNamed:@"placeholder"]];

Respondido el 30 de junio de 13 a las 08:06

necesitas return cell al final del método

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *CellIdentifier = @"FriendsCell";

    FriendData * fd = [self.friendsDataSource_ objectAtIndex:indexPath.row];

    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

    [cell.imageView  setImageWithURL:[NSURL URLWithString:fd.imageUrl_]];
    [cell.imageView setFrame:CGRectMake(0, 0, 30, 30)];
    [cell.textLabel setText:fd.name_];
    return cell;
}

contestado el 22 de mayo de 12 a las 21:05

De hecho, lo hice... simplemente lo corté. adit

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