ASCollectionViewController 0.1.1

ASCollectionViewController 0.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 NOASSERTION
发布最后发布2022年10月

Adrian SchoenigAdrian Schönig维护。



  • 作者:
  • Adrian Schoenig

ASCollectionViewController

一个简单的UICollectionViewController子类,使使用NSFetchedResultsControllerUIMenuControllerUIRefreshControl变得更容易。

特别是,它

  • 处理对您的模型的所有更改的批处理,以更新collectionView。这包括回调,如果您需要额外的逻辑来响应删除/插入/更新/移动。
  • 允许使用UIMenuItem对象在单元格上启用长按菜单。
  • 轻松添加UIRefreshControl控制。

获取结果控制器的逻辑来自Ash Furrow的代码,该代码则来自此代码片段

设置

  • 克隆存储库**将ASCollectionViewController.hASCollectionViewController.m添加到您的项目中。**代替UICollectionViewController子类化ASCollectionViewController

使用 NSFetchedResultsController 助手

  • 设置 managedObjectContext 属性。
  • 然后调用其中一个 configureFetcher... 方法。
  • 实现 numberOfSectionsInCollectionView:collectionView:numberOfItemsInSection:collectionView:cellForItemAtIndexPath: 方法,就像平常一样。请注意,您可以使用 fetchedResultsController 属性来查找部分信息和对象。
  • 任何对 CoreData 模型的更改都将自动反映出来。
  • 实现 handleFetchResultsControllerError 方法,因为默认实现是使用 abort() 调用崩溃。
  • 可选地,如果您需要做特殊操作,可以实现任意一个 didInsert/Delete/Update/MoveObject 方法。

使用 UIMenuController 助手

  • 使用 UIMenuItem 对象调用 addLongTapMenuItems:,以启用您希望启用的项目。
  • 实现这些 UIMenuItem 对象的选区。要获取元素,请使用集合视图的选择。
  • 可选地覆盖 shouldShowMenuItemForAction:forItemAtIndexPath: 方法,以自定义哪些动作/菜单项应该启用,以便在您的集合视图中为哪些项目启用。

使用 UIRefreshControl 助手

  • 使用 addRefreshControlWithTarget:action: 将 UIRefreshControl 添加到您的集合视图中。

示例

请参考包含的示例项目以查看一个非常基本的实现。