TGLStackedViewController 2.2.4

TGLStackedViewController 2.2.4

测试测试
语言语言 Obj-CObjective C
许可 MIT
发布最后发布2019年九月

Tim Gleue维护。



  • 作者:
  • Tim Gleue

Platform Tag CocoaPods Carthage License Downloads

TGLStackedViewController

使用 UICollectionView 实现手势的基础排序功能,受 Passbook 和 Reminders 应用程序启发。

2.2 版本新功能

  • 在 iOS 11.0 上重新实现使用 UIKit 拖放实现的项重新排序

2.0 版本新功能

  • 使用 iOS 9 集合视图重新排序 API 而不是自己的实现,因此最小部署目标为 iOS 9.0
  • 未暴露的项默认固定在底部
  • 除了点击,现在还可以交互式地折叠暴露的项
    • 在固定(默认)时,向下拖动项以切换回堆叠布局
    • 仅将卡片推到一边时,请使用捏合手势
  • 改进的示例项目,包含许多可交互调整的设置

TGLStackedViewExample

入门

请查看示例项目 TGLStackedViewExample.xcodeproj。您可以将示例类 TGLViewController 作为您自己实现的起点。

使用方法

通过 CocoaPods

  • pod 'TGLStackedViewController', '~> 2.2' 添加到项目的 Podfile

通过 Carthage

  • 在项目的 Cartfile 中添加 github "gleue/TGLStackedViewController", ~> 2.2

或者“经典”方式

  • TGLStackedViewController 文件夹中的文件添加到项目中

然后在项目中

  • 创建一个从 TGLStackedViewController 派生的子类
  • 在子类中实现 UICollectionViewDataSource 协议
    • 目前只支持1个区 因此您的 -numberOfSectionsInCollectionView 实现必须返回 1。《TGLStackedViewController》提供了一个适合您的实现,无需覆盖。
    • 常规实现 -numberOfSectionsInCollectionView:-collectionView:cellForItemAtIndexPath 方法。
    • 2.0版本新增:《TGLStackedViewController》方法 -collectionView:canMoveItemAtIndexPath: 实现,在允许重新排序之前检查层叠布局和至少2个项目的最小数量。确保在您的实现中调用 super 并尊重其结果。
    • 2.0版本新增:实现方法 -collectionView:moveItemAtIndexPath:toIndexPath: 以在项目重新排序后更新数据模型。
  • 在子类中实现 UICollectionViewDelegate 协议
    • TGLStackedViewController 已在内部实现方法 -collectionView:shouldHighlightItemAtIndexPath:-collectionView:didDeselectItemAtIndexPath-collectionView:didSelectItemAtIndexPath:,所以确保在您的实现中调用 super
    • 方法 -collectionView:targetContentOffsetForProposedContentOffset: 对于在展开和层叠布局之间切换至关重要,所以确保在您的实现中调用 super
  • 在故事板中将 UICollectionViewController 放置在您的类中并设置为其派生类
    • 确保正确设置集合视图的 delegatedataSource 连接
  • 2.0版本新增:《TGLStackedViewController》不再在内部创建布局对象。
    • 在界面构造器中的检查器中将集合视图控制器的内容设置为 TGLStackedLayout 或您自己的 TGLStackedLayout 子类。
    • 在代码中创建一个 TGLStackedViewController 时,必须在显示视图控制器之前设置集合视图的布局。

要求

  • ARC
  • iOS >= 9.0
  • Xcode 9.0

致谢

授权

TGLStackedViewController遵循MIT授权协议(MIT)

版权所有(c)2014-2019 Tim Gleue (http://gleue-interactive.com)

特此授予任何获得本软件及其相关文档副本(“软件”)的人自由使用该软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、许可和/或销售软件副本的权利,并允许向提供软件的人授予此类权利,但需遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和不侵犯专利权的保证。在任何情况下,作者或版权所有者不应对因使用或无法使用本软件而产生的任何索赔、损害或其它责任负责,无论是由合同、侵权行为还是其他原因引起的,即使被告知该软件可能或会导致此类损害。