實現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