实现iOS主屏幕文件夹

时间:2015-12-09 06:08:17

标签: ios objective-c

我有一个collectionView,每个单元格都显示一个图像。我想实现拖放。这将解决两个目的。

  • 重新排列细胞。
  • 当图像被拖入其他图像时,它会形成一个集合(将其视为包含两个或更多图像的组)。

此行为与主屏幕文件夹一致,其中应用程序图标可以分组到文件夹中。

请建议我如何实现这一点。

1 个答案:

答案 0 :(得分:1)

这不是微不足道的,但也不是不可能的。

重新排序更简单,您可以利用UICollectionView的方法:

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UICollectionView_class/#//apple_ref/doc/uid/TP40012177-CH1-SW67

  

以交互方式重新排序项目

     

集合视图允许您移动   基于用户交互的项目。通常,项目的顺序   集合视图中的数据由您的数据源定义。如果你支持   用户重新排序项目的能力,您可以配置手势   识别器,用于跟踪用户与集合视图的交互   item并更新该项目的位置。

     

要开始交互式重新定位项目,请调用   beginInteractiveMovementForItemAtIndexPath:集合的方法   视图。当您的手势识别器正在跟踪触摸事件时,请拨打电话   updateInteractiveMovementTargetPosition:报告更改的方法   触摸位置。完成跟踪手势后,请致电   endInteractiveMovement或cancelInteractiveMovement方法得出结论   交互并更新集合视图。

     

在用户交互期间,集合视图使其布局无效   动态地反映项目的当前位置。如果你这样做   什么都没有,默认的布局行为为你重新定位项目,   但是如果需要,您可以自定义布局动画。什么时候   交互完成后,用新的更新其数据源对象   物品的位置。

     

UICollectionViewController类提供默认手势   识别器,您可以使用它来重新安排其托管中的项目   集合视图。要安装此手势识别器,请设置   installsStandardGestureForInteractiveMovement属性   集合视图控制器为YES。

要实现“分组”行为,您需要以这样的方式定义您的单元格,即它可以确定它是否是单个项目并且应该只显示自身,或者它是否包含多个项目,在这种情况下它应该能够弹出视图作为托盘,可能是自己的视图控制器,以独立处理水龙头。这部分将很难,因为你需要再次实施重新排序,拖出等等。

您可能想要搜索Github和其他人,看看是否有人实施了可以帮助您入门的“Springboard”类型的应用。