UITableView重新加载单元格的视图

时间:2011-04-01 12:54:28

标签: iphone uitableview reload

如何重新加载整个tableview?在-tableView:cellForRowAtIndexPath:我将在线数据与用户设备上的数据进行比较,如果不相同,我会显示一个下载内容的按钮。在连接到此按钮的操作后,我想刷新整个tableview,再次在线与本地用户抱怨内容。

reloadData确实更新了值,但它并没有删除这些按钮。我想改变细胞的显示方式..

换句话说,我希望这个条件(在-tableView:cellForRowAtIndexPath:中)起作用,它不会:

    if (![[NSFileManager defaultManager] fileExistsAtPath:someDir isDirectory:nil]) {   
        UIButton *bt = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        (...)
        [cell addSubview:bt];
    }

要立即更新表格,我必须弹出viewcontroller并再次推送它。我想用navBar上的按钮来做。

提前致谢。

2 个答案:

答案 0 :(得分:1)

这是因为您使用dequeueReusableCellWithIdentifier缓存单元格。检查文档。您应该使用和不使用按钮来缓存2种类型的单元格。

答案 1 :(得分:1)

UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier: @"your-id"];
if (cell)
{
     //Check if it should contain a button. If it shouldn't remove it
}
else
     //Create a fresh new cell