2

我有一个带有滑动操作的 UITableView,在滑动时:A)显示一个空白/空白区域,滑动操作按钮应该显示在该区域;B) 以下行记录到 Xcode 中的调试控制台:

[断言] pullView 不在视图层次结构中。这是一个 UIKit 错误。

截至今天,在此问题的标题上搜索的 Google 搜索结果为零。

4

1 回答 1

4

原来罪魁祸首如下

override func setEditing(_ editing: Bool, animated: Bool) {
    super.setEditing(editing, animated: animated)

    if !editing {
        rowSelectionState.removeAll()
        loadData()
    }
    refreshView()
}

具体来说,refreshView()包含tableView.reloadData()调用的调用需要在if !editing { ... }块内。如果不是,当启动滑动操作时,滑动操作似乎调用setEditMode(true, ...),因此调用tableView.reloadData()这与UISwipeActionsConfiguration正确显示的能力相混淆。

因此,上面应该是这样的:

override func setEditing(_ editing: Bool, animated: Bool) {
    super.setEditing(editing, animated: animated)

    if !editing {
        rowSelectionState.removeAll()
        loadData()
        refreshView()
    }
}
于 2020-01-08T17:40:13.957 回答