我知道这个问题已被多次询问过,但没有一个答案可以解决这个问题。当我向下滚动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 :(得分:1)
您需要在自定义单元格类中实现prepareForReuse
。
答案 1 :(得分:-1)
你必须做这样的事情: -
os.read()
}