tabelview操作(转)

局部刷新方法

添加数据

NSArray *indexPaths = @[
                   [NSIndexPath indexPathForRow:0 inSection:0],
                   [NSIndexPath indexPathForRow:1 inSection:0]
                   ];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationRight];

删除数据

NSArray *indexPaths = @[
                 [NSIndexPath indexPathForRow:0 inSection:0],
                 [NSIndexPath indexPathForRow:1 inSection:0]
                 ];
[self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationMiddle];

更新数据(没有添加和删除数据,仅仅是修改已经存在的数据)

NSArray *indexPaths = @[
                 [NSIndexPath indexPathForRow:0 inSection:0],
                 [NSIndexPath indexPathForRow:1 inSection:0]
                 ];
[self.tableView relaodRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationMiddle];

左滑出现删除按钮

需要实现tableView的代理方法

  // 只要实现了这个方法,左滑出现Delete按钮的功能就有了
  // 点击了“左滑出现的Delete按钮”会调用这个方法
  - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
  {
  // 删除模型
  [self.wineArray removeObjectAtIndex: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 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"关注" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
  NSLog(@"点击了关注");

  // 收回左滑出现的按钮(退出编辑模式)
  tableView.editing = NO;

}];

  UITableViewRowAction *action1 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"删除" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
  [self.wineArray removeObjectAtIndex:indexPath.row];
  [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
  }];

  return @[action1, action0];
}

进入编辑模式

// self.tabelView.editing = YES;
[self.tableView setEditing:YES animated:YES];
// 默认情况下,进入编辑模式时,左边会出现一排红色的“减号”按钮
在编辑模式中多选
// 编辑模式的时候可以多选
self.tableView.allowsMultipleSelectionDuringEditing = YES;
// 进入编辑模式
[self.tableView setEditing:YES animated:YES];

// 获得选中的所有行
self.tableView.indexPathsForSelectedRows;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,061评论 25 709
  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 13,001评论 3 38
  • UITableViewCell控件空间构造 cell的子控件是contentView,contentView的子控...
    CoderZXS阅读 4,151评论 0 1
  • 有时候我们说,“村长家的二丫三观很正”,其实,我们是在说,“他的三观正好和我一样耶!” 我们说,“包工头儿他儿子真...
    张言之阅读 4,264评论 0 4
  • 其实我今年4月份才正式告别了校园,彻底从学生身份转换成社会人的。可大概是有几年的时间身在与国内环境并不相同的学校吧...
    scmsuki阅读 2,688评论 0 1

友情链接更多精彩内容