2009-12-10 12 views
5

Podobna do this previous question, pojawia się problem z wyrównaniem tekstu w komórkach tabeli. Cały tekst jest przesunięty w górę o kilka pikseli. Nie używam komórek niestandardowych; Używam zwykłych UITableViewCell s ze stylem UITableViewCellStyleValue1, kierując na iPhone OS 3.1. Wolałbym znacznie prostsze rozwiązanie niż poprzednie pytanie, zwłaszcza że nie używam komórek niestandardowych. Chciałbym również wiedzieć, jaki jest problem, ponieważ ta część pytania nigdy nie została rozwiązana.Niepoprawna etykieta komórki tabeli iPhone'a

Oto jak to wygląda na symulatorze:

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

A na urządzeniu:

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

Edycja: niektóre więcej kodu, jak na zamówienie. (Buduję moje komórki tabeli poza 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

Czy możemy zobaczyć kod 'cellForRowAtIndexPath'? Użyłem 'UITableViewCellStyleValue1' bez wyświetlania tego problemu w przeszłości. –

+0

Jasne, mogę to dodać, ale nie jestem pewien, jak będzie użyteczny. –

+0

Nigdy wcześniej nie widziałem komórek stworzonych w ten sposób ... wyglądają jednak OK. Może coś jeszcze w kodzie, którego nie pokazujesz, jest winowajcą? – bpapa

Odpowiedz

5

wiem Twój kod mówi używasz stylu komórki UITableViewCellStyleValue1, ale zrzut urządzenie naprawdę wygląda UITableViewCellStyleSubtitle. Aby uzyskać oczekiwany styl komórki, należy ustawić wartość dla .

W tej notatce, jeśli nie zamierzasz używać właściwości detailTextLabel, powinieneś prawdopodobnie użyć UITableViewCellStyleDefault.

+0

Ups - masz rację. To chyba naprawiło to! Miałem tam te linie, ale skomentowałem je, a następnie przypadkowo usunąłem te skomentowane linie, kiedy anonimizowałem kod do zamieszczania tutaj. W każdym razie, dziękuję bardzo! Jest to zdecydowanie błąd z algorytmem układu. –

+0

Zgłosiłem zgłoszenie błędu w Radar # 7464950. –

+0

Co to jest błąd układu? Jeśli * użyłeś * stylu Podtytuł, tekst został poprawnie ułożony. – benzado

Powiązane problemy