为了在UITableView
中启用可重排(移动)单元格,我必须将table.isEditing
设置为true
并实现以下委托方法:
func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool
func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath)
我还实现了以下委托方法来隐藏默认的表编辑UI:
func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
return .none
}
func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool {
return false
}
我还想滑动删除此表中的单元格。我曾尝试同时使用tableView(_:editActionsForRowAt:)
方法和新的iOS 11 tableView(_:trailingSwipeActionsConfigurationForRowAt:)
,但在table.isEditing = true
时都无法使用。我使用的唯一其他相关的表委托方法是:
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool
为所有单元格返回true
。
是否可以同时启用这两个UITableView功能?这似乎是可能的,因为这正是Apple Music应用程序中的表队列的工作方式: