我有一个带有滑动操作的 UITableView,在滑动时:A)显示一个空白/空白区域,滑动操作按钮应该显示在该区域;B) 以下行记录到 Xcode 中的调试控制台:
[断言] pullView 不在视图层次结构中。这是一个 UIKit 错误。
截至今天,在此问题的标题上搜索的 Google 搜索结果为零。
我有一个带有滑动操作的 UITableView,在滑动时:A)显示一个空白/空白区域,滑动操作按钮应该显示在该区域;B) 以下行记录到 Xcode 中的调试控制台:
[断言] pullView 不在视图层次结构中。这是一个 UIKit 错误。
截至今天,在此问题的标题上搜索的 Google 搜索结果为零。
原来罪魁祸首如下
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()
}
}