美文网首页
Swift 中的 TableViewCell 多选删除操作

Swift 中的 TableViewCell 多选删除操作

作者: 冰霜海胆 | 来源:发表于2017-12-20 16:20 被阅读98次

    在 OC 中,UITableViewCell 的多选操作如下:

    - (IBAction)removeSelectedCells {
       NSMutableArray *deleteDatas = [NSMutableArray array];
       for (NSIndexPath *indexPath in >self.tableView.indexPathsForSelectedRows) {
           [deleteDatas addObject:self.datas[indexPath.row]];
       }
    
       [self.datas removeObjectsInArray:deleteDatas];
       [self.tableView reloadData];
    }
    

    一定要将选中删除的行号保存起来,统一同时删除,防止出现数组下标错误的情况发生。


    但是 Swift 中并没有类似 removeObjectsInArray 的方法,只能逐个删除。解决方法:通过 repeat while 方法来进行类似 OC 的操作。

    if let _ = tableView.indexPathsForSelectedRows {
      repeat {
          if let indexPath = tableView.indexPathForSelectedRow {
             datas.remove(at: indexPath.row)
             tableView.deleteRows(at: [indexPath], with: .automatic)
          }
      } while tableView.indexPathsForSelectedRows != nil
    }
    

    相关文章

      网友评论

          本文标题:Swift 中的 TableViewCell 多选删除操作

          本文链接:https://www.haomeiwen.com/subject/bfwgwxtx.html