Tengo un UITableViewCell personalizado que consiste en un UIImageView y un UILabel. La celda mide 320x104px y el imageView ocupa toda el área con la etiqueta al frente. Solo hay 8 celdasUITableViewCell personalizado con UIImageView grande que causa desplazamiento de desplazamiento
en ViewDidLoad Estoy creando todas las imágenes necesarias por adelantado y las guardo en un diccionario en las dimensiones correctas.
Cuando desplazo el UITableView, hay un retraso notable cada vez que se encuentra una nueva celda. Esto no tiene sentido para mí ya que la imagen que está utilizando ya está creada y en la memoria caché. Todo lo que le pido a la celda es que su UIImageView represente la imagen.
estoy usando una celda de medida con su punto de vista en un xib y configuración de mi UITableView usarlo con:
[self.tableView registerNib: [UINib nibWithNibName: @ "ActsCell" paquete: nil] forCellReuseIdentifier: myIdentifier];
creación de células y configuración:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString* reuseIdentifier = @"ActsCell";
ActsCell* cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
// Configure the cell...
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
- (void)configureCell:(ActsCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
Act* act = [self.acts objectAtIndex:indexPath.row];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.title.text = act.name;
cell.imageView.image = [self.imageCache objectForKey:act.uid];
}
qué podría estar causando el retraso? No parece ser beneficioso tratar de hacer nada Async ya que todo el trabajo que requiere mucho tiempo se realiza.
Puedo pensar en dos cosas. Una es que el proceso de dequeueing falla porque no configura el 'reusableIdentifier' correctamente. El otro es el tamaño de las imágenes. A pesar de que las imágenes están cargadas, CG necesita procesar los datos de la imagen antes de mostrarlos, lo que puede implicar operaciones costosas como escalar, componer, etc. – Lvsti
@Lvsti ¿Puede explicar cómo no configuro el reuseIdentifier correctamente? – Undistraction
tienes razón, probablemente ese no sea el caso, de lo contrario no recuperarás ninguna célula cuando dequeueing ... – Lvsti