2016-04-11 39 views
0

'da gezinirken hücreler değişiyor Bu soruyu defalarca sordum, ama cevapların hiçbiri benim için hile yapmıyor. UITableView'ı aşağı kaydırdığımda ve geriye kaydırdığımda, hücre içeriği değişir ve başka bir hücre içeriği gibi görünüyor. Bir kod örneği sağlanmışsa, bu sorunu nasıl çözebilirim? İşte ben denedim bir cevabı, mantıklı ama nasıl uygulanacağı bilmiyorum: BuradaUITableview

Link Ben Böyle bir şey yapmak zorunda

- (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

Tüm içerikler neler değişiyor? – Krish

+0

Derece değişiyor. Bir değer gösterir ve sonra aşağı kaydırıp geriye kaydırdığımda farklı bir değer gösterir. –

+0

Modeldeki derecelendirmeyi güncellediniz mi? – Krish

cevap

-1

sahip koddur: -

-(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

Bunun bir cevabı vermeme rağmen, bunun soruyla nasıl bağlantılı olduğunu göremiyorum – Lasse

1

Özel hücre sınıfınızda prepareForReuse uygulamanız gerekir.