我正在尝试实现一个功能,即用户将一个collectionview单元格拖放到另一个单元格上。然而,我希望完全改变移动中的预览内容,以匹配我的应用程序的视觉隐喻(该项不在移动,包含该项的东西在移动)。
例如,假设我的collectionview单元格显示一支猪笔,而我想让猪从一个笔筒移动到另一个笔筒,预览视图应该是显示一个单独的猪,而不是整个笔筒。虽然这与Apple意图使用其API的略有不同,但我认为这是一种有效的用法。
我已经看到了
有什么想法或思路吗?
例如,假设我的collectionview单元格显示一支猪笔,而我想让猪从一个笔筒移动到另一个笔筒,预览视图应该是显示一个单独的猪,而不是整个笔筒。虽然这与Apple意图使用其API的略有不同,但我认为这是一种有效的用法。
我已经看到了
func collectionView(_ collectionView: UICollectionView, dragPreviewParametersForItemAt indexPath: IndexPath) -> UIDragPreviewParameters
,但那只让你稍微裁剪一下它,并没有重新做整个视图。有什么想法或思路吗?
UILongPressGestureRecognizer
添加自己的拖动预览视图,以及使用UIPanGestureRecognizer
进行移动。长按的起始点和平移的结束点应该能够通过indexPathForItem(at point: CGPoint)
来获取拖放的源和目标。 - Swapnil Luktuke