【问题标题】:How to swipe to delete in tableview editing mode? (swift)如何在tableview编辑模式下滑动删除? (迅速)
【发布时间】:2021-02-26 15:45:55
【问题描述】:

我想让表格视图可以重新排序。

它有汉堡按钮来重新排列单元格 我可以像iOS音乐应用一样滑动单元格删除单元格。

所以我这样做了,我不能刷单元格。 我认为 tableView.setEditing 使单元格无法滑动。

我该怎么做?

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
    return true
}


func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
    
    let action = UIContextualAction(style: .normal, title: nil) { (action, view, completion) in
        self.shoppingList.remove(at: indexPath.row)
        tableView.deleteRows(at: [indexPath], with: .fade)
        completion(true)
    }
    
    action.backgroundColor = .white
    action.image = UIImage(named: "delete")
    
    let configuration = UISwipeActionsConfiguration(actions: [action])
    configuration.performsFirstActionWithFullSwipe = false
    return configuration
    
}


func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
    return true
}

func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
    return .none
}

func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool {
    return false
}


func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
    let movedCell = self.shoppingList[sourceIndexPath.row]
    shoppingList.remove(at: sourceIndexPath.row)
    shoppingList.insert(movedCell, at: destinationIndexPath.row)
}


override func viewDidLoad() {
    super.viewDidLoad()

    setup()
    bindConstraints()
}


func setup() {
   
    let footerView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 39))
    footerView.addSubview(writeButton)
    
    tableView.delegate = self
    tableView.dataSource = self
    tableView.tableFooterView = footerView
    //tableView.sectionFooterHeight = 100
   
    self.view.addSubview(tableView)
    
    tableView.setEditing(true, animated: true)
}

【问题讨论】:

    标签: ios swift tableview


    【解决方案1】:

    试试

    func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
        return .delete
    }
    

    【讨论】:

    • 我试过了,但是我不能用删除样式刷单元格。
    猜你喜欢
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    相关资源
    最近更新 更多