2016-04-11 13 views
0

Ich weiß, dass diese Frage schon oft gestellt wurde, aber keine der Antworten macht den Trick für mich. Wenn ich den UITableView herunterscrolle und dann zurück blättern gehe, ändert sich der Inhalt der Zellen und es scheint, als wäre es ein anderer Zelleninhalt. Wie kann ich dieses Problem beheben, wenn ein Codebeispiel bereitgestellt werden kann, das großartig wäre. Hier ist eine Antwort, die ich versucht, macht Sinn, aber ich weiß nicht, wie zu implementieren: LinkZellen ändern beim Scrollen in UITableview

Hier ist der Code Ich habe

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 


    SearchedCell *cell = (SearchedCell *)[tableView dequeueReusableCellWithIdentifier:@"any-cell"]; 

    if (!cell) 
    { 
     cell = [[SearchedCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"any-cell"]; 
    } 


    NSDictionary *dict = [[appDel.jsonDict valueForKey:@"results"] objectAtIndex:indexPath.row]; 

    if([dict valueForKey:@"BusinessUrl"] == nil) 
    { 
    cell.btnMenu.hidden = TRUE; 
    } 
    else 
    { 
    cell.btnMenu.hidden = FALSE; 
    } 

    cell.lblRestaurantName.text = [dict valueForKey:@"name"]; 

    NSString *tmpAddr = [dict valueForKey:kResponseVicinity]; 
    cell.lblAddress.text = tmpAddr; 
    if(appDel.isNearClicked) 
    { 
     cell.lblDistance.text = @""; 
    } 
    else 
    { 
    cell.lblDistance.text = @""; 
    } 
    cell.lblPhoneNo.text = [dict valueForKey:@"Phone"]; 

    [cell.btnCall addTarget:self action:@selector(CallClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    [cell.btnMap addTarget:self action:@selector(MapClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    [cell.btnMenu addTarget:self action:@selector(MenuClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    cell.btnCall.tag = indexPath.row; 
    cell.btnMap.tag = indexPath.row; 
    cell.btnMenu.tag = indexPath.row; 

    return cell; 

} 
+0

Was ändert sich alles? – Krish

+0

Die Bewertung ändert sich. Es zeigt einen Wert an und wenn ich dann nach unten scrolle und nach oben scrolle, wird ein anderer Wert angezeigt. –

+0

Haben Sie die Bewertung im Modell aktualisiert? – Krish

Antwort

-1

Sie haben so etwas zu tun: -

-(NSArray *)SetSelectionArray:(NSArray *)OldArray :(NSUInteger)index 
{ 

NSMutableArray *TempArr=[[NSMutableArray alloc] init]; 
NSMutableDictionary *modifyDict=[[OldArray objectAtIndex:index] mutableCopy]; 
if ([[modifyDict valueForKey:@"selectionState"]isEqualToString:@"1"]) 
{ 
    [modifyDict setValue:@"0" forKey:@"selectionState"]; 
} 
else 
{ 
    [modifyDict setValue:@"1" forKey:@"selectionState"]; 
} 

TempArr=[OldArray mutableCopy]; 
[TempArr replaceObjectAtIndex:index withObject:modifyDict]; 
return [TempArr copy]; 

}

+0

Ich sehe nicht, wie das mit der Frage zusammenhängt, geschweige denn, eine Antwort zu geben – Lasse

1

Sie müssen prepareForReuse in Ihrer benutzerdefinierten Zellklasse implementieren.

Verwandte Themen