在表格视图中实现 iOS 11 拖放。如果我不想拖动第一行,我假设我从 tableView(:itemsForBeginning:) 返回一个空数组
func tableView(_ tableView: UITableView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] {
if indexPath.row == 0 {
return []
}
let dragItems = self.dragItems(forRowAt: indexPath)
print("dragging row index \(String(describing: dragItems.first?.localObject as? Int))")
return dragItems
}
当您不允许用户从指定的索引路径拖动内容时,返回一个空数组。
但即使验证了 [ ] 已返回,拖动仍然会发生。这意味着要么我搞砸了,要么该功能没有按文档实现。我总是犹豫是否认为它是其他人,所以我的问题是 [ ] 的返回是否实际上应该防止 0 行的拖累?其他人对此进行验证或将其显示为按记录工作吗?
谢谢
编辑:来自 WWDC 视频的示例代码包括这个块:
if tableView.isEditing {
// User wants to reorder a row, don't return any drag items. The table view will allow a drag to begin for reordering only.
return []
}
这是说如果你不返回任何拖动项,表格视图仍然允许拖动?!?!那么如何防止一行被拖动呢?