2009-12-10 18 views
5

Similar a this previous question, tengo un problema con la alineación de texto en las celdas de mi tabla. Todo el texto se desplaza unos píxeles. No estoy usando celdas personalizadas; Estoy usando el UITableViewCell s normal con el estilo UITableViewCellStyleValue1, dirigido a iPhone OS 3.1. Preferiría una solución mucho más simple que la respuesta a la pregunta anterior, especialmente porque no estoy usando células personalizadas. También me gustaría saber exactamente cuál es el problema es, ya que esa parte de la pregunta nunca fue tratada.Etiqueta de celda de la tabla de iPhone desalineada

Esto es lo que parece en el simulador:

Simulator http://www.shaggyfrog.com/junk/table-cell-label-misalignment-simulator.png

Y en el dispositivo:

Device http://www.shaggyfrog.com/junk/table-cell-label-misalignment-device.png

Editar: algo más de código según la petición. (Estoy construyendo mi celdas de la tabla fuera del cellForRowAtIndexPath.)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return [cells objectAtIndex:[indexPath row]]; 
} 

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    [self loadCells]; 
    [table reloadData]; 

    [self.navigationController setNavigationBarHidden:NO animated:YES]; 
} 

- (void)loadCells 
{ 
    cells = [[NSArray alloc] initWithObjects:[self aCell], [self bCell], nil]; 
} 

- (UITableViewCell*)aCell 
{ 
    UITableViewCell* cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"Foo"] autorelease]; 
    cell.textLabel.text = @"A"; 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    return cell; 
} 

- (UITableViewCell*)bCell 
{ 
    UITableViewCell* cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"Foo"] autorelease]; 
    cell.textLabel.text = @"B"; 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    return cell; 
} 
+0

¿Podríamos ver el código 'cellForRowAtIndexPath'? He usado 'UITableViewCellStyleValue1' sin ver este problema en el pasado. –

+0

Claro, puedo agregarlo, pero no estoy seguro de lo útil que será. –

+0

Nunca he visto células creadas así antes ... pero se ven bien. ¿Quizás algo más en el código que no estás mostrando es el culpable? – bpapa

Respuesta

5

Sé el código dice que está utilizando estilo de celda UITableViewCellStyleValue1, pero el dispositivo de captura de pantalla realmente se parece UITableViewCellStyleSubtitle.

Debe establecer un valor para cell.detailTextLabel.text para asegurarse de que obtiene el estilo de celda esperado.

En ese sentido, si no va a utilizar la propiedad detailTextLabel, probablemente debería usar UITableViewCellStyleDefault.

+0

Vaya, tienes razón. ¡Parece que eso lo arregló! Tenía esas líneas allí, pero las comenté, y luego quité accidentalmente esas líneas comentadas cuando estaba anonimizando el código para publicar aquí. En cualquier caso, ¡muchas gracias! Esto es definitivamente un error con el algoritmo de diseño. –

+0

Presentó un informe de error en Radar # 7464950. –

+0

¿Cuál es el error de diseño? Si * usabas * el estilo Subtitle, el texto se estaba distribuyendo correctamente. – benzado

Cuestiones relacionadas