2011-01-28 12 views
8

He intentado casi todo, pero parece que no puedo mover la propiedad cell.textLabel un poco. He adjuntado una captura de pantalla a continuación y he intentado casi todo lo que pude encontrar.¿Cómo puedo cambiar el marco textLabel de una celda?

He intentado cambiar directamente la propiedad .frame, intenté modificar si usaba "- (void) tableView: (UITableView *) tableView willDisplayCell" method ". También intenté asignar una etiqueta personalizada. podría mover la etiqueta personalizada, pero no entraría en líneas separadas, como la textLabel originales. Sólo tengo que mover la etiqueta de múltiples líneas en la foto un poco hacia abajo.

Cualquier ayuda se agradece!

enter image description here

Respuesta

16

La única forma de hacerlo es utilizar una subclase UITableViewCell y anular -layoutSubviews. En este método, querrás llamar al [super layoutSubviews], y luego hacer los ajustes de marcos que quieras a la etiqueta.

1

Terminé agregando un \ n al comienzo de la cadena. Desafortunadamente no pude conseguir nada más para trabajar.

21

anulación layoutSubviews para su UITableViewCell ...

- (void)layoutSubviews { 
    [super layoutSubviews]; 

    CGSize size = self.bounds.size; 
    CGRect frame = CGRectMake(4.0f, 4.0f, size.width, size.height); 
    self.textLabel.frame = frame; 
    self.textLabel.contentMode = UIViewContentModeScaleAspectFit; 
} 

o simplemente puede hacer su propio objeto UILabel, y añadirlo a cell.contentView como subvista.

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(4, 4, 30, 30)]; 
[cell.contentView addSubview:label]; 
[label release]; 
0
- (void)layoutSubviews { 
    [super layoutSubviews]; 

    CGSize size = self.bounds.size; 
    CGRect frame = CGRectMake(4.0f, 4.0f, size.width, size.height); 
    self.textLabel.frame = frame; 

    self.textLabel.textAlignment = NSTextAlignmentCenter; 
} 
+1

Podría explicar lo que hace el código, y por qué se responde a la pregunta? – Mel

Cuestiones relacionadas