2016-04-11 10 views
0

この質問は何度も尋ねられていますが、答えのどれも私のためのトリックをやっていません。私がUITableViewをスクロールしてからスクロールバックすると、セルの内容が変化し、別のセルの内容のように見えます。コードサンプルを提供することができれば、どうすればこの問題を解決できますか?ここで私が試した1つの答えは、ある理にかなっているが、私は実装する方法がわからない:ここではUITableviewでスクロールするときにセルが変化する

Linkは、私はあなたがこのような何かをしなければならない

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

すべてのコンテンツは変更されていますか? – Krish

+0

評価が変更されています。それは1つの値を表示し、私が下にスクロールし、それを上にスクロールすると、別の値を示します。 –

+0

モデルの評価を更新しましたか? – Krish

答えて

-1

を持っているコードです: -

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

これは質問に関連するものではありません – Lasse

1

カスタムセルクラスにprepareForReuseを実装する必要があります。

関連する問題