实现iOS 11在表格视图中拖放。如果我不希望在第一行要拖呢,我以为我返回从的tableView一个空数组(:itemsForBeginning :)为什么空的UIDragItem数组仍然允许拖动行?
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 []
}
这是说,如果你不返回任何拖拉物品,表视图将仍然允许拖动?!?!那么如何防止行被拖拽呢?
同样的事情发生时,你只是'return []'? –
是的,它为纯粹的'返回[]' – JKaz
你允许编辑tableview,即旧的方式重新排序行吗? – Losiowaty