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 文件。