2011-12-06 11 views
11

tengo una costumbre UITableViewCell que utilizo como esto:anulación de encargo UITableViewCell

AppTableCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"AppTableCell" owner:self options:nil]; 
    for(id currentObject in topLevelObjects) { 
     if([currentObject isKindOfClass:[AppTableCell class]]) { 
      cell = (AppTableCell *)currentObject; 
      break; 
     } 
    } 
} 

funciona a la perfección. Pero, me gustaría hacer algunas cosas personalizadas en la celda cuando se crean. Normalmente, anularía algo como initWithFrame, pero no se usa aquí. ¿Qué método debo anular para personalizar la inicialización?

Respuesta

19

La manera correcta es anular awakeFromNib para UITableViewCell.

- (void)awakeFromNib 
{ 
    [super awakeFromNib]; 
    // Do something 
} 

Ver references para obtener más detalles.

4

Los objetos que se desarchivan de una punta se envían al mensaje -initWithCoder:. Ese es su punto de anulación.

+1

Si el objeto utiliza salidas o acciones, no funciona porque no está conectado – Victor