2012-04-14 4 views
0

Ich erstellte eine uitableview und wenn ich es starte, sieht es so aus, wie es soll, aber wenn ich scroll, wird Text in alle anderen Abschnitte, die ich nicht angegeben, kann jemand bitte hilfe. Das erste Bild ist wie es aussehen soll. Das zweite was es macht, wenn ich scrolle.UITableView Zellbeschriftungen bewegen sich beim Scrollen

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    if (section == 0){ 
     return 1;} 
    else if (section == 1){ 
     return [cellLabels count]; 
    }else if (section == 2){ 
     return 1; 
    }else{ 
     return 0; 
    } 

} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *cellIdentifier = @"cellIdentifier"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 

    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier]; 
    } 
    tableView.showsVerticalScrollIndicator = NO; 
    // cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 


    if(indexPath.section == 0) 
    { 
    } 
    else if (indexPath.section == 1) 
    { 
     cell.textLabel.backgroundColor = [UIColor clearColor]; 
     cell.textLabel.textColor = [UIColor blackColor]; 
     // headerLabel.font = [UIFont SystemFontOfSize:16]; 
     [cell.textLabel setFont:[UIFont fontWithName:@"Arial" size:14]]; 
     cell.textLabel.text = [cellLabels objectAtIndex:indexPath.row]; 


    } 
return cell; 

} 

This is what is looks like when it is launched, and what it is supposed to look like

enter image description here

Antwort

1

Ihr Problem ist ziemlich einfach,

seit Tabellenansicht Reuses Zellen zugeordnet, , wenn es zum ersten Abschnitt Ihrer Anzeige nichts, in der zweiten zum ersten Mal kommt Abschnitt zeigt Ihre benutzerdefinierten Texte

, wenn es scrollt und c ome Text zurück in ersten Abschnitt erscheint, weil, wenn es

if(indexPath.section == 0) 
{ 
} 

erreicht, es wird nicht alles tun, so

machen es

if(indexPath.section == 0) 
{ 
    cell.textLabel.text = @""; 
} 
else if(indexPath.section == 2) 
{ 
    cell.textLabel.text = @""; 
} 

oder

if(indexPath.section == 0) 
{ 
    cell.textLabel.text = nil; 
} 

else if(indexPath.section == 2) 
{ 
    cell.textLabel.text = nil; 
} 

andere für Kapitel 1 ist korrekt