数据刷新
添加数据
删除数据
更改数据
全局刷新方法(最常用)
[self.tableViewreloadData];// 屏幕上的所有可视的cell都会刷新一遍
局部刷新方法
添加数据
NSArray*indexPaths = @[ [NSIndexPathindexPathForRow:0inSection:0], [NSIndexPathindexPathForRow:1inSection:0] ];[self.tableViewinsertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationRight];
删除数据
NSArray*indexPaths = @[ [NSIndexPathindexPathForRow:0inSection:0], [NSIndexPathindexPathForRow:1inSection:0] ];[self.tableViewdeleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationMiddle];
更新数据(没有添加和删除数据,仅仅是修改已经存在的数据)
NSArray*indexPaths = @[ [NSIndexPathindexPathForRow:0inSection:0], [NSIndexPathindexPathForRow:1inSection:0] ];[self.tableViewrelaodRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationMiddle];
左滑出现删除按钮
需要实现tableView的代理方法
/**
* 只要实现了这个方法,左滑出现Delete按钮的功能就有了
* 点击了“左滑出现的Delete按钮”会调用这个方法
*/- (void)tableView:(UITableView*)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath*)indexPath{
// 删除模型[self.wineArrayremoveObjectAtIndex:indexPath.row];
// 刷新[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];}/**
* 修改Delete按钮文字为“删除”
*/- (NSString*)tableView:(UITableView*)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath*)indexPath{return@"删除";}
左滑出现N个按钮
需要实现tableView的代理方法
/**
* 只要实现了这个方法,左滑出现按钮的功能就有了
(一旦左滑出现了N个按钮,tableView就进入了编辑模式, tableView.editing = YES)
*/- (void)tableView:(UITableView*)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath*)indexPath{}/**
* 左滑cell时出现什么按钮
*/- (NSArray*)tableView:(UITableView*)tableView editActionsForRowAtIndexPath:(NSIndexPath*)indexPath{UITableViewRowAction*action0 = [UITableViewRowActionrowActionWithStyle:UITableViewRowActionStyleNormaltitle:@"关注"handler:^(UITableViewRowAction*action,NSIndexPath*indexPath) {NSLog(@"点击了关注");// 收回左滑出现的按钮(退出编辑模式)tableView.editing=NO; }];UITableViewRowAction*action1 = [UITableViewRowActionrowActionWithStyle:UITableViewRowActionStyleDefaulttitle:@"删除"handler:^(UITableViewRowAction*action,NSIndexPath*indexPath) { [self.wineArrayremoveObjectAtIndex:indexPath.row]; [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; }];return@[action1, action0];}
进入编辑模式
// self.tabelView.editing = YES;[self.tableViewsetEditing:YESanimated:YES];// 默认情况下,进入编辑模式时,左边会出现一排红色的“减号”按钮
在编辑模式中多选
// 编辑模式的时候可以多选self.tableView.allowsMultipleSelectionDuringEditing=YES;// 进入编辑模式[self.tableViewsetEditing:YESanimated:YES];// 获得选中的所有行self.tableView.indexPathsForSelectedRows;