¿Cómo cambiar el tamaño de la image para que se ajuste a la celda UITableView?

Cómo ajustar UIImage en la celda de UITableView , UITableViewCell (?).

¿ addSubview a la cell o hay una forma de cambiar el tamaño de cell.image o el UIImage antes de que se asigne a cell.image ?

Quiero mantener el tamaño pnetworkingeterminado de la celda (sea lo que sea cuando inicies con cero rectángulo) y me gustaría agregar íconos como imágenes a cada input. Las imágenes son ligeramente más grandes que el tamaño de la celda (tamaño de la fila de la tabla).

Creo que el código se parece a esto (desde la parte superior de mi cabeza):

 UIImage * image = [[UIImage alloc] imageWithName:@"bart.jpg"]; cell = ... dequeue cell in UITableView data source (UITableViewController ...) cell.text = @"bart"; cell.image = image; 

¿Qué debo hacer para cambiar el tamaño de la image para que se ajuste al tamaño de la celda? He visto algo como:

 UIImageView * iview = [[UIImageView alloc] initWithImage:image]; iview.frame = CGRectMake(...); // or something similar [cell.contentView addSubview:iview] 

Lo anterior agregará una image a la celda y puedo calcular el tamaño para ajustarlo, sin embargo:

  1. No estoy seguro de si hay una mejor manera, ¿no es demasiada sobrecarga para agregar UIImageView solo para cambiar el tamaño de la cell.image ? ¿ cell.image ?
  2. Ahora mi label ( cell.text ) necesita moverse, ya que está oscurecida por la image, he visto una solución donde simplemente agrega el text como una label:

Ejemplo:

 UILabel * text = [[UILable alloc] init]; text.text = @"bart"; [cell.contentView addSubview:iview]; [cell.contentView addSubview:label]; // not sure if this will position the text next to the label // edited original example had [cell addSubview:label], maybe that's the problem 

¿Podría alguien señalarme en la dirección correcta?

EDIT : Doh [cell.contentview addSubview:view] no [cell addSubview:view] tal vez se supone que debo mirar esto:

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = ...; CGRect frame = cell.contentView.bounds; UILabel *myLabel = [[UILabel alloc] initWithFrame:frame]; myLabel.text = ...; [cell.contentView addSubview:myLabel]; [myLabel release]; } 

Este sitio publica código para volver a UIImage* un UIImage* . Podrías jugar con la escala para get la razón correcta para el UIImage* que estás usando, para networkingucirla.

Si tiene acceso al centro Apple Devloper, hay un video sobre escalar imágenes para vistas de tabla. Está más centrado en los problemas de performance y habla mucho sobre el subprocesamiento, pero sí muestra un código de muestra utilizado para cambiar el tamaño de las imágenes.

Nombre de video: "Desarrollo efectivo de la aplicación de iPhone – Parte 2" a unos 30 minutos.