tutorial objective licencia guide framework developer apple objective-c uikit ocunit sentestingkit

objective c - objective - ¿Cómo cargar una célula prototipo desde un guión gráfico?



objective c documentation (2)

Edición: Hasta donde sé, no es posible usar el prototipo UITableViewCells desde un Storyboard en otro lugar que no sea el ViewController en el que lo creó.

Aún no he probado esto con pruebas unitarias, pero puede colocar fácilmente su UITableViewCell personalizado en un plumín separado.

Para usarlo en sus controladores de vista, necesita registrar la celda con sus vistas de tabla.

UINib *nib = [UINib nibWithNibName:@"ABCNameOfYourNibCell" bundle:nil]; [self.tableView registerNib:nib forCellReuseIdentifier:@"myCustomCell"];

Luego use la celda como esta en cellForRowAtIndexPath:

static NSString *CellIdentifier = @"myCustomCell"; ABCNameOfYourNibCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

Para tus propósitos de prueba deberías poder ir con:

ABCNameOfYourNibCell *testCell = [[ABCNameOfYourNibCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier:nil];

Si necesita probar el comportamiento de reutilización, debe establecer un identificador de reuso aquí y llamar a prepareForReuse en la celda.

¿Hay una manera de cargar una célula prototipo, junto con cualquier conexión de IBOutlet como se define dentro de un guión gráfico?

Actualizar

Quiero realizar una prueba unitaria de la celda (un UICollectionViewCell para esa materia), por lo tanto me gustaría cargarla fuera de un contexto UIViewController.

Efectivamente, de la misma manera que puede cargar una vista personalizada desde una punta, especificando el propietario de su archivo y tener su IBOutlet (s) establecido.


Normalmente UITableViewController un UITableViewController o un UITableView . Que también debe crear una clase UITableViewCell . Después de crear la clase UITableViewCell , vaya a `UIStoryboard, seleccione la celda:

Luego configure la clase UITableViewCell dentro del Identity Inspector :

Ahora agregue elementos al UITableViewCell y conéctelos con su clase

Ahora agregue el CellIdentifier dentro del Attributes Inspector :

No UITableViewController a su UITableViewController ni a UIViewController donde tiene los métodos UITableViewDelegate y llame a su celda de esta forma (no olvide UITableViewCell clase UITableViewCell en la parte superior de su ViewController :

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"MyIdentifier"; MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; [cell.label setText:[NSString stringWithFormat:@"My Cell at Row %ld", (long)indexPath.row]]; return cell; }