VPAccordionAnimation
这是一个自定义类,提供单元格展开和收起的动画。即,单元格的展开或收起会自动调整到视图的中心。展开的单元格可以包含视图数据或完整的视图控制器数据。
IMP
现在VPAccordionAnimation支持Swift 4.0。现在需要XCode 9或更高版本来构建。
需求
- iOS 9.0或更高版本。
- ARC内存管理。
使用
源代码
- 将VPAccordionAnimation文件夹添加到您的项目文件夹中(包含4个文件。仅当不需要自定义时才包含单元格nib文件。如果您有一个单元格,它是VPAccordionAnimationCell的子类,则此文件不需要。)
使用 Cocoapods
- 在 Podfile 中使用
pod 'VPAccordionAnimation'
添加库,然后使用pod install
或pod update
。 - 在任何使用 VPAccordionAnimation 或其属性的地方添加
import VPAccordionAnimation
。
设置流程
- 将包含 tableView 的视图控制器的父类更改为 VPAccordionAnimationViewController。如果有 BaseVC,则将 VPAccordionAnimationViewController 的父类更改为 BaseVC
- 将
isAccordionAnimationEnabled
属性设置为true
。 - 调用函数 -
createAccordionDataForIndexPaths(withViewOrControllerData viewData: [AnyObject], forTableView tableView : UITableView)
或者
createAccordionDataForIndexPaths(indexPaths: [NSIndexPath], withViewOrControllerData viewData: [AnyObject], forTableView tableView : UITableView)
以在 viewDidLoad() 中填充视图或 viewController 数据。
- 将 tableView cell 的父类更改为 VPAccordionTableViewCell。
- 在 tableView cell 中添加一个容器视图,并将其输出连接到 VPAccordionTableViewCell 的 infoView 输出。
- 在 infoView 中添加所有必要的视图(作为 infoView 的子视图)。
- 为 infoView 添加约束 - Leading, Trailing, Top 和 Height - 不要添加底约束。
- 如果需要箭头视图动画,则将其连接到 VPAccordionTableViewCell 的 arrowView 输出。在子类中设置 arrowImageInitialDirection 和 arrowImageFinalDirection。
- 您可以使用其他可选变量来添加额外的功能,例如动画持续时间、箭头视图旋转方向等。
VPAccordionAnimationOptions 属性
所有这些选项都位于 VPAccordionAnimationController
的 accordionDataSource
属性中,它是一个 VPAccordionAnimationOptions
结构的实例。
您可以使用以下属性定义关闭和打开动画的速度 -
var closeAnimationDuration : TimeInterval {get set}
var openAnimationDuration : TimeInterval {get set}
您可以使用以下属性创建在加载时单元格的状态 - 您可以设置为全部展开或全部折叠。默认为全部折叠
var cellDefaultState : DefaultState {get set}
如果需要多次单元格展开,则将以下变量设置为true
var multipleCellExpansionEnabled : Bool {get set}
当一个单元格被展开时,如果需要启用tableView的滚动,则使用下面的属性。
var tableViewScrollEnabledWhenExpanded : Bool {get set}
您可以使用以下属性指定箭头视图的旋转方向(如果存在,顺时针或逆时针)
var arrowRotationDirection : ArrowRotation {get set}
AccordionAnimationTableViewCell子类化属性
如果存在箭头视图,您可以指定箭头的开始和结束方向以通过Accordion Animation协议处理动画
var arrowImageInitialDirection : ArrowDirection = .right
var arrowImageFinalDirection : ArrowDirection = .down
捐款
类型 1
- 分支它!
- 创建您的功能分支:
git checkout -b my-new-feature
- 提交您的更改:
git commit -am 'Add some feature'
- 推送到分支:
git push origin my-new-feature
- 提交拉取请求 :D
类型 2
- 创建问题
- 我会尝试添加必要的功能
- 您可以下载更新代码 :P
历史记录
版本 3.0.1
修复了由于 Pods 导致的 Bundle 问题
版本 3.0.0
现在VPAccordionAnimation也支持Pod了。同时,它也已经迁移到了Swift 4。
版本2.1.1
修复了在折叠单元时导致略微抖动的问题。
版本2.1.0
修复了使用UITablewViewAutomaticDimension的手机单元时布局问题。
版本2.0.0
此版本现在支持Swift 3.0。如果你使用的XCode版本小于8,请使用版本1.3.0发布版,因为这个版本构建和运行现在需要XCode 8。
版本1.3.0
删除了方便集成AccordionAnimation的公共代码,如果不需要自定义,将自动添加默认单元格。如果需要 (例如,在展开时指定不同的单元格高度,单元格内容等),请覆盖UITableViewDataSource或UITableViewCellDelegate方法(例如,指定展开的单元格内容)。默认高度为展开时占满整个视图的高度。
版本1.2.2
添加了对底部截图阴影的支持,如有需要,以及对代码的优化整理。
版本1.2.1
代码清理,并增加了根据需要禁用展开时单元格选择的支撑。
版本 1.2.0
根据需要,增加了视图或视图控制器视图的展开或折叠支持,并进行了代码清理。
版本 1.1.0
增加了多个单元格展开的支持,并在变量设置的情况下启用了滚动。
版本 1.0.0
添加了基本的折叠动画类,并处理了箭头视图动画。
许可证
MIT 许可证 (MIT)
版权所有(c)2016 Varun P M
以下任何人以及获得此软件及其相关文档文件(“软件”)副本的人,可以不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向提供软件的个人做上述处理,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或重大部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适用于特定目的的适销性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论此类责任是基于合同、侵权或其他方式产生的,并 arising from, out of or in connection with the software or the use or other handling of the software。