数据刷新的原则
-
先获取数据,修改数据之后修改展示
- 先获取数据
- 调用数据刷新方法
不要直接修改cell上面的子控件的属性
重新刷新屏幕上的所有cell
[self.tableView reloadData];
-
增加
- 增加必须先修改数据源,增加了相应的数据之后,增加的条数和insertRowsAtIndexPaths行号集合必须数量必须一致
// 插入某些特定的行 // insertRowsAtIndexPaths行号集合 [self.tableView insertRowsAtIndexPaths:@[ [NSIndexPath indexPathForRow:0 inSection:0], [NSIndexPath indexPathForRow:1 inSection:0] ] withRowAnimation:UITableViewRowAnimationLeft];
-
删除
- 删除数据,需要先将数据源中的条数删除,删除的条数和insertRowsAtIndexPaths行号集合必须数量必须一致
//删除特定的行 [self.tableView deleteRowsAtIndexPaths:@[ [NSIndexPath indexPathForRow:0 inSection:0], [NSIndexPath indexPathForRow:1 inSection:0] ] withRowAnimation:UITableViewRowAnimationRight];
-
修改
- 修改数据源中对应的模型
// 刷新特定的行 [self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:3 inSection:0]] withRowAnimation:UITableViewRowAnimationMiddle];
删除和增加的时候刷新表格,有的时候会出问题,最简单的方法就是直接使用全部刷新
删除功能还有左滑删除
// 进入编辑模式
//self.tableView.editing = YES;
[self.tableView setEditing:!self.tableView.isEditing animated:YES];
/**
* 只要实现这个方法,左划cell出现删除按钮的功能就有了
* 用户提交了添加(点击了添加按钮)\删除(点击了删除按钮)操作时会调用
*/
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// 点击了“删除”
} else if (editingStyle == UITableViewCellEditingStyleInsert) {
// 点击了+
}
}
/**
* 这个方法决定了编辑模式时,每一行的编辑类型:insert(+按钮)、delete(-按钮)
*/
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
/**
* UITableViewCellEditingStyleNone,
* UITableViewCellEditingStyleDelete,
* UITableViewCellEditingStyleInsert
*/
return UITableViewCellEditingStyleDelete;
}