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或单元格设置为自定义视图的知识,我强烈建议您下载示例项目并查看整体情况,但基本上,您需要做以下几个步骤。
1. 对于控制对象,实现 CustomHeaderViewDataSource
协议。
2. 对于显示为HeaderView的视图,实现 CustomHeaderView
协议。
3. 将可展开表格视图对象的headerViewDataSource设置为您控制对象。
4. 因为您使用了自定义HeaderView,在您的数据模型中,您不再需要在 ExpandableObjectProtocol.h
中实现 -(NSString *)description;
。
1. 对于控制对象,实现 CustomCellDataSource
协议。
2. 将可展开表格视图对象的cellDataSource设置为您控制对象。
3. 因为您使用了自定义单元格,在您的数据模型中,您不再需要在 ExpandableObjectProtocol.h
中实现 -(NSString *)descriptionForSecondaryObjects;
。
如果您需要更多自定义视图的功能(比如您想添加手势或完全控制表格视图),您可以随意修改代码!如果您在使用CYExpandableTableView时遇到任何错误,请报告问题! :)