【发布时间】:2020-05-26 12:49:36
【问题描述】:
我正在使用UICollectionViewDragDelegate 在集合视图中实现拖放,并尝试在拖动时隐藏拖动预览
在关注此线程Custom View for UICollectionViewCell Drag Preview 之后,我设法通过使用这行代码来隐藏它:
public func collectionView(_ collectionView: UICollectionView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] {
let dragItem = UIDragItem(itemProvider: NSItemProvider())
dragItem.previewProvider = {
return nil
}
}
但拖动预览在提升时仍然显示,唯一允许我在提升期间修改拖动预览的方法是
public func collectionView(_ collectionView: UICollectionView, dragPreviewParametersForItemAt indexPath: IndexPath) -> UIDragPreviewParameters? {
let previewParameters = UIDragPreviewParameters()
previewParameters.visiblePath = UIBezierPath(roundedRect: CGRect(x: 0, y: 0, width: 50, height: 50), cornerRadius: 0)
previewParameters.backgroundColor = UIColor.clear
return previewParameters
}
但它只允许我设置背景颜色而不是隐藏拖动预览
我尝试的第二种方法是检查细胞状态
public override func dragStateDidChange(_ dragState: UICollectionViewCell.DragState) {
switch dragState {
case .none:
self.layer.opacity = 1
case .lifting:
self.layer.opacity = 0
case .dragging:
self.layer.opacity = 1
}
}
但它也不起作用
你们中有人知道如何隐藏吗?或者至少隐藏边框和阴影也可以解决这个问题
这里是提升的单元格
【问题讨论】:
-
如何隐藏我拖动的collectionView单元格谁能帮忙而不是拖动预览,我尝试使用dragStateDidChange解决,但是当我尝试解决它时其他单元格开始行为不端?
标签: ios uicollectionview drag-and-drop