Tengo un tableview, ¿cómo puedo añadir una imagen a la izquierda de esta células?

InformationsquelleAutor AMH | 2011-05-03

6 Comentarios

  1. 126
    cell.imageView.image = [UIImage imageNamed:@"image.png"];

    ACTUALIZACIÓN:
    Como Steven Fisher, dijo, este debe trabajar sólo para las células con estilo UITableViewCellStyleDefault que es el estilo por defecto. Para otros estilos, sería necesario agregar un UIImageView a la célula contentView.

    • Si tu celular es de mal UITableviewCellStyle, no tienen un imageView, entonces usted no será capaz de ajustar la imagen de esta manera. Creo que sólo UITableViewCellStyleDefault soporta imágenes en este camino; de lo contrario, tendrás que agregar su propia imagen (ver Aman la respuesta).
    • En realidad, si usted está utilizando una celda personalizada que usted no debe hacerlo de la manera que Aman no – debe añadir vistas a la celda.contentView, no a la celda directamente.
    • Pero en cuanto el estilo de celda, tienes razón, solo por defecto de las células de soporte imageView – developer.apple.com/library/ios/#documentation/UIKit/Reference/…
    • Este también parece funcionar para el estilo UITableViewCellStyleSubtitle.
    • ¿Qué es «por defecto»? Basic? Personalizado?
  2. 21

    Prueba este código:–

    UIImageView *imv = [[UIImageView alloc]initWithFrame:CGRectMake(3,2, 20, 25)];
    imv.image=[UIImage imageNamed:@"arrow2.png"];
    [cell addSubview:imv];
    [imv release];
    • poner el código dentro del método – (UITableViewCell *)en formato tableview:(UITableView *)en formato tableview cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    • En lugar de añadir directamente a la celda de uso [de la célula.contentView addSubview:imv];
  3. 13

    Estándar UITableViewCell ya contiene UIImageView que aparece a la izquierda con todas sus etiquetas si su imagen se establece. Usted puede tener acceso a él mediante imageView propiedad:

    cell.imageView.image = someImage;

    Si por alguna razón estándar de comportamiento no se ajusta a sus necesidades (tenga en cuenta que usted puede personalizar las propiedades de la imagen estándar de la vista), entonces usted puede agregar sus propias UIImageView a la célula como Aman sugirió en su respuesta. Pero en ese enfoque tendrás que administrar células del diseño del mismo (por ejemplo, asegúrese de que la celda de etiquetas no se superponen a la imagen). Y no agregar subvistas a la celda directamente a añadirlos a la célula contentView:

    //DO NOT!
    [cell addSubview:imv]; 
    //DO:
    [cell.contentView addSubview:imv];
  4. 6

    Para que mis compañeros de usuarios de Swift, aquí está el código que se necesita:

    let imageName = "un-child-rights.jpg"
    let image = UIImage(named: imageName)
    cell.imageView!.image = image
  5. 0

    Todas las buenas respuestas de los demás. Aquí hay dos maneras de resolver este:

    1. Directamente desde el código donde usted tiene que controlar mediante programación las dimensiones de la imageview

      override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
          let cell = tableView.dequeueReusableCell(withIdentifier: "xyz", for: indexPath)
          ...
          cell.imageView!.image = UIImage(named: "xyz") //if retrieving the image from the assets folder 
          return cell
      }
    2. De la placa de la historia, donde se puede utilizar el atributo inspector & tamaño de inspector en el panel de la utilidad para ajustar la posición, agregar restricciones y especificar las dimensiones

      • En el guión gráfico, agregar un imageView objeto en la celda del contenido ver con sus dimensiones deseadas y agregar una etiqueta a la vista(imageView) en el atributo inspector. A continuación, haga lo siguiente en su viewController

        override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            let cell = tableView.dequeueReusableCell(withIdentifier: "xyz", for: indexPath)
            ...
            let pictureView = cell.viewWithTag(119) as! UIImageView //let's assume the tag is set to 119
            pictureView.image = UIImage(named: "xyz") //if retrieving the image from the assets folder 
            return cell
        }

Dejar respuesta

Please enter your comment!
Please enter your name here