uitableviewcell example custom ios uitableview storyboard iboutlet

ios - example - uitableviewcell programmatically swift 4



Conecte la salida de un prototipo de celda en un guión gráfico (3)

Sí, no puedes conectar las vistas que están dentro de una celda prototipo personalizada usando el método ctrl + drag. En su lugar, use la propiedad de etiqueta de la vista y luego, cuando esté construyendo la celda, saque las etiquetas usando sus etiquetas.

Aquí:

//Let''s assume you have 3 labels. One for a name, One for a count, One for a detail //In your storyboard give the name label tag=1, count tag=2, and detail tag=3 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { CustomTableViewCell *theCell = [tableView dequeueReusableCellWithIdentifier:@"Prototype Cell"]; UILabel *nameLabel = (UILabel *)[theCell viewWithTag:1]; UILabel *countLabel = (UILabel *)[theCell viewWithTag:2]; UILabel *detailLabel = (UILabel *)[theCell viewWithTag:3]; nameLabel.text = @"name"; countLabel.text = @"count"; detailLabel.text = @"details"; return theCell; }

También puede establecer las etiquetas como propiedades en su código de celda personalizado y luego, cuando se inicialice la celda, use la llamada viewWithTag para asignar las propiedades de la etiqueta a las etiquetas que ha creado en sus storyboards.

Me llevó unos días darme cuenta de que no podía presionar Ctrl + arrastrar desde dentro de una celda personalizada para crear un IBOutlet.

¡Buena suerte!

EDITAR: PUEDE crear IBOutlets para sus etiquetas dentro de una celda personalizada y crear los enlaces programatéticamente, pero no a través del método ctrl + drag.

EDIT 2: Estaba totalmente equivocado, puedes presionar + arrastrar. Vea la segunda respuesta a esta pregunta. Es complicado, pero funciona bastante bien.

Soy un novato con Storyboard y tengo algunas dificultades ...

Creé un TableViewController y me gustaría personalizar el prototipo de celda. En Cell Prototype, he agregado varias etiquetas que me gustaría personalizar con mi propia clase que hereda de UITableViewCell (AreaListCell). En Storyboard, para Cell Prototype he configurado Custom Class con "AreaListCell" y su estilo es "Custom".

En el guión gráfico, cuando selecciono Cell Prototype y luego el asistente, el asistente muestra mi clase que implementa UITableViewController (AreasTableViewController) y no
mi clase "AreaListCell".

La consecuencia es que puedo crear una salida (usando Ctrl + Arrastrar desde la etiqueta del Prototipo de celda) a la clase AreasTableViewController pero no a la clase AreaListCell. ¿Alguna idea de cómo conectar el Cell Prototype con mi clase AreaListCell?

¡Gracias por tu ayuda!


ACTUALIZACIÓN: A partir de Xcode 4.6 (posiblemente antes), ahora puede crear tomas mediante el control de arrastre. - Esto tiene que hacerse en una sección de interfaz o extensión de clase (la extensión de clase no existe por defecto para las nuevas subclases de células. Gracias a Steve Haley por señalar esto.

No puede hacer que la toma de corriente se conecte y cree automáticamente arrastrando hacia el bloque de código en el editor asistente, que es pobre, pero puede crear las tomas manualmente y luego conectarlas.

En su interfaz de subclase de celda:

@interface CustomCell : UITableViewCell @property (nonatomic) IBOutlet UILabel* customLabel; @end

Sintetice como normal en la implementación.

En el guión gráfico, seleccione la celda y vaya al inspector de conexiones; verá la nueva toma de corriente. Arrastre desde allí hasta el elemento relevante en su prototipo:

Ahora se puede acceder a esto como cell.customLabel en su método cellForRowAtIndexPath: .


Swift 3

// estamos usando esto si sus imágenes están en el servidor.

// estamos obteniendo imágenes de una url.

// puedes establecer una imagen desde tu Xcode.

  1. La URL de las imágenes está en una matriz nombre = miniatura, es decir, self.thumbnail [indexPath.row]
  2. en UITableviewCell puso una imageView en la celda
  3. seleccione UIimageView asigne una etiqueta del guión gráfico.

    let pictureURL = URL(string: self.thumbnail[indexPath.row])! let pictureData = NSData(contentsOf: pictureURL as URL) let catPicture = UIImage(data: pictureData as! Data) var imageV = UIImageView() imageV = cell?.viewWithTag(1) as! UIImageView imageV.image = catPicture