[关闭]
@HelloJansen 2016-07-29T09:49:53.000000Z 字数 1437 阅读 258

Cell右滑出编辑删除两个选项

Cell编辑


关于右滑cell,能滑出来两个以上的选项栏,可以如下这么做,但是要注意下面的注意事项,就是关于iOS8前后的问题,注释写的很清楚了。可以直接复制到自己的代码里看的会更明白。

  1. //允许cell可以进行编辑
  2. - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
  3. return YES;
  4. }
  5. //cell的编辑类型
  6. - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
  7. {
  8. return UITableViewCellEditingStyleDelete;
  9. }
  10. //可以不调用这个代理 默认是 Delete 编辑右滑出的title
  11. - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
  12. {
  13. return @"删除";
  14. }
  15. //iOS8 以前 只有一个删除选项
  16. - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
  17. {
  18. NSLog(@"点击了删除");
  19. }
  20. //iOS 8 以后 可以右滑出多个选项栏 就用这个代理方法,
  21. - (nullable NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(8_0) __TVOS_PROHIBITED
  22. {
  23. UITableViewRowAction *delete = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"删除" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
  24. NSLog(@"点击了删除");
  25. }];
  26. UITableViewRowAction *editing = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"编辑" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
  27. NSLog(@"点击了编辑");
  28. }];
  29. editing.backgroundColor = [UIColor Theme_Color];
  30. //加入数组的第一个为最右边的第一个 (可以添加多个)
  31. return @[delete,editing];
  32. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注