2009-05-18 22 views
6

Cómo caber UIImage en la celda de UITableView, UITableViewCell (?).¿Cómo cambiar el tamaño de la imagen para que se ajuste a la celda UITableView?

que haces addSubview a cell o hay una manera de cambiar el tamaño o la cell.imageUIImage antes de que se le asigna a cell.image?

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

Creo que el código es el siguiente (de la parte superior de la cabeza):

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

¿Qué tengo que hacer para cambiar el tamaño de la imagen para ajustarse al tamaño de la célula? que he visto algo como:

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

Lo anterior se sumará la imagen a la celda y puedo calcular el tamaño para adaptarse a ella, 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 del cell.image?
  2. Ahora mi etiqueta (cell.text) es necesario que haya trasladaron ya que está oscurecida por la imagen, he visto una solución en la que sólo agrega el texto como una etiqueta:

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?

EDITAR: 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]; 
} 
+0

¿Ninguna otra sugerencia? – stefanB

Respuesta

2

This site posts code en un cambio de escala UIImage*. Puede jugar con la escala para obtener la proporción correcta para el UIImage* que está utilizando, para reducirla.

+0

Interesante, voy a echar un vistazo, gracias por el enlace – stefanB

1

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

Nombre del video: "Desarrollo efectivo de aplicaciones para iPhone - Parte 2" unos 30 minutos.

+0

gracias, lo comprobaré – stefanB

Cuestiones relacionadas