ZGExpandableTable 1.0.2

ZGExpandableTable 1.0.2

Ziggear 维护。



  • 作者
  • ziggear

ZGExpandableTable

ZGExpandableTable 是一个 iOS 组件,旨在简化移动设备上查看 JSON 文件。JSON 文件通常很长并且具有层级结构,这使得在小屏幕上查看和导航变得具有挑战性。此组件提供了一个可展开的表格视图,允许用户以方便的分层方式查看 JSON 内容。

功能

  • 在 UITableView 中递归展开 JSON 层次。
  • 易于集成,无需复杂配置。
  • 包含示例项目以展示功能。

示例

要查看 ZGExpandableTable 的实际应用,请查看本仓库中包含的示例项目。它使用来自 json.org 的示例 JSON 来展示内容加载和显示。

示例代码

以下是您如何在项目中设置和使用 ZGExpandableTable 的示例

NSString *examplePath = [[NSBundle mainBundle] pathForResource:@"example" ofType:@"json"];
NSData *exampleJSON = [NSData dataWithContentsOfFile:examplePath];

ZGExpandableTableController *tableController = [[ZGExpandableTableController alloc] initWithTableViewFrame:self.view.bounds style:UITableViewStylePlain];
UITableView *tableView = tableController.tableView;
[self.view addSubview:tableView];

[tableController loadJSON:exampleJSON];

安装

ZGExpandableTable 已经制作成了 pod。要使用它,请在您的 Podfile 中添加以下内容:

pod 'ZGExpandableTable', :git => 'https://github.com/ziggear/ZGExpandableTable.git'

然后

pod install

项目设计

数据解析

由于 JSON 是递归的,ZGExpandableTable 采用了递归方法来创建 ZGJSONNode 对象。每个节点都有一个 "expanded" 属性来表示其展开状态。

数据显示

该组件递归地读取 ZGJSONNode 并将其展开成一个单层 ZGJSONNodeShowModel 数组。这使得对 UITableView 加载内容变得简单。当用户点击某个项目时,相应节点的展开状态将被更新,并且 ZGJSONNodeShowModel 数组将重建,以实现无限的 JSON 数据展开/折叠。

表格组织

ZGExpandableTableController 帮助创建 UITableView,但它不继承自 UIViewController。这种设计允许调用者自由地将 UITableView 添加到自己的 View 或 ViewController。

贡献

我们欢迎向 ZGExpandableTable 贡献!以下是一些您可以贡献的方式

  • Swift 版本:我们非常希望有这个组件的 Swift 版本。如果您有兴趣,请提交一个 pull request。
  • UI 优化:任何使 JSON 内容显示更美观的改进都非常受欢迎。

许可

ZGExpandableTable 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。