2016-04-11 3 views
0

Я знаю, что этот вопрос задан много раз, но ни один из ответов не делает трюк для меня. Когда я прокручиваю UITableView и затем прокручиваю назад, содержимое ячеек изменяется, и похоже, что это еще одно содержимое ячеек. Как я могу исправить эту проблему, если может быть предоставлен образец кода, который будет отличным. Вот один ответ я пытался, имеет смысл, но я не знаю, как реализовать: LinkЯчейки, меняющиеся при прокрутке в UITableview

Вот код, у меня есть

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

Оценка меняется. Он показывает одно значение, а затем, когда я прокручиваю вниз и прокручиваю назад, он показывает другое значение. –

+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 в вашем пользовательском классе ячеек.

Смежные вопросы