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.image
UIImage
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:
- no estoy seguro de si hay una mejor manera, ¿no es demasiada sobrecarga para agregar
UIImageView
solo para cambiar el tamaño delcell.image
? - 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];
}
¿Ninguna otra sugerencia? – stefanB