我有一个collectionView,每个单元格都显示一个图像。我想实现拖放。这将解决两个目的。
此行为与主屏幕文件夹一致,其中应用程序图标可以分组到文件夹中。
请建议我如何实现这一点。
答案 0 :(得分:1)
这不是微不足道的,但也不是不可能的。
重新排序更简单,您可以利用UICollectionView的方法:
以交互方式重新排序项目
集合视图允许您移动 基于用户交互的项目。通常,项目的顺序 集合视图中的数据由您的数据源定义。如果你支持 用户重新排序项目的能力,您可以配置手势 识别器,用于跟踪用户与集合视图的交互 item并更新该项目的位置。
要开始交互式重新定位项目,请调用 beginInteractiveMovementForItemAtIndexPath:集合的方法 视图。当您的手势识别器正在跟踪触摸事件时,请拨打电话 updateInteractiveMovementTargetPosition:报告更改的方法 触摸位置。完成跟踪手势后,请致电 endInteractiveMovement或cancelInteractiveMovement方法得出结论 交互并更新集合视图。
在用户交互期间,集合视图使其布局无效 动态地反映项目的当前位置。如果你这样做 什么都没有,默认的布局行为为你重新定位项目, 但是如果需要,您可以自定义布局动画。什么时候 交互完成后,用新的更新其数据源对象 物品的位置。
UICollectionViewController类提供默认手势 识别器,您可以使用它来重新安排其托管中的项目 集合视图。要安装此手势识别器,请设置 installsStandardGestureForInteractiveMovement属性 集合视图控制器为YES。
要实现“分组”行为,您需要以这样的方式定义您的单元格,即它可以确定它是否是单个项目并且应该只显示自身,或者它是否包含多个项目,在这种情况下它应该能够弹出视图作为托盘,可能是自己的视图控制器,以独立处理水龙头。这部分将很难,因为你需要再次实施重新排序,拖出等等。
您可能想要搜索Github和其他人,看看是否有人实施了可以帮助您入门的“Springboard”类型的应用。