CYExpandableTableView 0.0.2

CYExpandableTableView 0.0.2

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布上次发布2016年8月

Gocy015 维护.



  • 作者:Gocy

CYExpandableTableView 是一个 iOS 可展开表格视图,它具有默认行为,但您也可以轻松地进行自定义!

预览

默认情况下,CYExpandableTableView 仅显示文本内容。

您只需通过设置以下属性(tbvc 是 CYExpandableTableViewController 实例)来轻松更改文本颜色/填充颜色:


    tbvc.selectedHeaderFillColor = Header color when you selected a header;
    tbvc.selectedHeaderTextColor = Text color when you selected a header;
    tbvc.normalHeaderFillColor = Header color when a header is not selected;
    tbvc.normalHeaderTextColor = Text color when a header is not selected;

颜色将如预期显示。

自定义?

通过实现一些协议,您还可以完全自定义表格外观,就像我在示例项目中做的那样

集成

如果您使用 Cocoapods,只需将以下内容添加到 Podfile:pod 'CYExpandableTableView'
然后,CocoaPods 会完成所有的操作!

您还可以下载或克隆项目,并将整个 'CYExpandableTableView' 拖入您的项目!

无论哪种方式,您现在都已准备好开始:)

用法

基本用法

如果您要使用表格视图的基础功能,那就非常简单了

首先,将 import "ExpandableObjectProtocol.h" 添加到您的数据模型类中,并实现该协议的相应的方法和属性。

然后,前往将要持有实际表格视图的视图控制器,导入 "CYExpandableTableViewController.h",设置外观(如颜色),然后将表格视图添加到您的视图上,将数据数组分配给 CYExpandableTableViewController 实例,完成!构建并运行!

如果您想接收表格视图选择事件,只需实现 UITableViewDelegate,并在初始化 CYExpandableTableViewController 实例时添加 expandableTableVC.tableViewDelegate = self;,然后您将在用户点击某个行时收到 didSelectRowAtIndexPath:

向前迈进一步

当标签和文本无法满足您的需求时,就是进行自定义的时候了。

你需要的一切都在 "CustomExpandableViewProtocol.h" 中,实现 CustomHeaderViewDataSource,表格视图将构建HeaderView外观的责任转交给您;实现 CustomCellDataSource,您就可以创建自己的表格视图单元格。当然,如果您需要的话,可以同时实现这两个功能。

要了解更多关于将表格视图的HeaderView或单元格设置为自定义视图的知识,我强烈建议您下载示例项目并查看整体情况,但基本上,您需要做以下几个步骤。

自定义HeaderView

1. 对于控制对象,实现 CustomHeaderViewDataSource 协议。

2. 对于显示为HeaderView的视图,实现 CustomHeaderView 协议。

3. 将可展开表格视图对象的headerViewDataSource设置为您控制对象。

4. 因为您使用了自定义HeaderView,在您的数据模型中,您不再需要在 ExpandableObjectProtocol.h 中实现 -(NSString *)description;

自定义TableView单元格

1. 对于控制对象,实现 CustomCellDataSource 协议。

2. 将可展开表格视图对象的cellDataSource设置为您控制对象。

3. 因为您使用了自定义单元格,在您的数据模型中,您不再需要在 ExpandableObjectProtocol.h 中实现 -(NSString *)descriptionForSecondaryObjects;

全部控制

如果您需要更多自定义视图的功能(比如您想添加手势或完全控制表格视图),您可以随意修改代码!如果您在使用CYExpandableTableView时遇到任何错误,请报告问题! :)