2013-10-19 6 views
5

Ich habe eine Tabellenansicht und ich legte alle ungeraden Zellenhöhe = 0, In der ungeraden Zelle hatte ich einige Etiketten. Wenn die Tabellenansicht angezeigt wird, erscheint die Beschriftung in der ungeraden Zelle in der geraden Zelle. Gibt es eine Möglichkeit, das Label verschwinden zu lassen? Dieses Problem ist in ios 6 p/s: in ios 7 passiert: es funktioniert richtig. Ich hatte bereits die Methode: [TableView beginUpdates]; [tableView endUpdates];heightForRowAtIndexPath = 0, aber es zeigt immer noch die Bezeichnung in seiner Zeile

Danke.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 

    // show odd row 
    if (selectedRow == indexPath.row) return 78; 

    // hide odd row and show even row 
    if (indexPath.row %2 ==0){ 
     return 88;} 
    else{ 
     return 0;} 
} 

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 


    if (indexPath.row%2 == 0){ 


     //user click on even row -> display the next row 
     selectedRow = indexPath.row+1; 

     [tableView beginUpdates]; 

     [tableView endUpdates]; 

    } 
} 


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    int index = indexPath.row/2; 

    if (indexPath.row %2 ==0){ 

     static NSString *CellIdentifier = @"PhraseViewCell"; 

     PhraseCellVietnamese *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

     NSString *phrase = [[phrases objectAtIndex:index] objectForKey:@"vietnamese"]; 

     NSNumber *checkFavorite = [[phrases objectAtIndex:index] objectForKey:@"favorite"]; 

     NSNumber *phraseId =[[phrases objectAtIndex:index] objectForKey:@"_id"]; 

     [cell SetInfo:phrase :checkFavorite.intValue :phraseId.intValue]; 

     return cell; 

    } 
    else{ 

     static NSString *CellIdentifier = @"PinyinViewCell"; 

     PinYinViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

     NSString *pinyin = [[phrases objectAtIndex:index] objectForKey:@"pinyin"]; 

     NSString *chinese = [[phrases objectAtIndex:index] objectForKey:@"chinese"]; 

     NSString *voice = [[phrases objectAtIndex:index] objectForKey:@"voice"]; 

     [cell setInfo:pinyin :chinese :voice]; 

     return cell; 
    } 
} 
+0

Was passiert, wenn Sie Clipping-Subviews auf yes für contentView der Zelle setzen? – Zen

+0

wie man es einstellt? Entschuldigung, weil ich Neuling bin – tommy

+1

'[cell.contentView setClipsToBounds: YES];' – Zen

Antwort

20

[ZellensatzClipsToBounds: YES]; in CellForRowAtIndexPath

arbeitete für mich. Hoffe, du hast deine Lösung gefunden.

+1

rette mein Leben. :) – yuhua

+0

Gleich mit mir. Cheers – Allamaprabhu

+0

Schöne Lösung, Thx! –

3

Nach user2799736 Antwort Lesen änderte ich Clip Subviews auf YES in .xib Datei. Arbeitete für mich.

+0

Schöne Lösung, Thx! –