是否可以将可拖动的UITableViewCell完全替换为自定义的UIView?
例如,当我点击单元格并开始拖动时,我想要显示一个圆圈,直到我释放单元格时才在该元素上显示该元素是否可以被放置到最终位置。
我使用了UITableViewDragDelegate和UIDropInteraction,但找不到替换单元格的方法,只能使用UIBezierPath从单元格中裁剪出一部分。
是否可以将可拖动的UITableViewCell完全替换为自定义的UIView?
例如,当我点击单元格并开始拖动时,我想要显示一个圆圈,直到我释放单元格时才在该元素上显示该元素是否可以被放置到最终位置。
我使用了UITableViewDragDelegate和UIDropInteraction,但找不到替换单元格的方法,只能使用UIBezierPath从单元格中裁剪出一部分。
你可以通过实现这个委托方法来实现
func tableView(_ tableView: UITableView,
itemsForBeginning session: UIDragSession,
at indexPath: IndexPath) -> [UIDragItem] {
let provider = NSItemProvider()
let item = UIDragItem(itemProvider: provider)
// remove this code to drag whole cell
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
item.previewProvider = { () -> UIDragPreview? in
let previewImageView = UIView()
previewImageView.frame = CGRect(x: 0,y: 0,width: 50,height: 50)
previewImageView.layer.cornerRadius = previewImageView.bounds.maxX / 2
return UIDragPreview(view: previewImageView)
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
return [item]
}