UIObject
概述
快速渲染您应用中任何结构或类中所有属性的表格视图。根据需要添加和移除属性,视图会自动调整。这是可视化从 JSON 对象解析出的模型数据的好方法。足够强大以用于调试,同时足够美观以展示给用户。
- 每个表格元素显示属性名称及其当前值
- 处理可选值
- 闭包值显示为 "(函数)"
- 所有方法均为
open
- 覆盖视图以匹配您的应用 - 可选:将对象声明为既
Codable
又UIObject
,您将拥有一个快速且方便的解析->显示层次结构的解决方案
示例
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
。
要求
- iOS 9.0+
- Swift 4.0+
通信
- 如果您需要帮助,请使用Stack Overflow。(标签 'uiobject')
- 如果您想要问一个通用问题,请使用Stack Overflow。
- 如果您找到了一个错误,请提交一个Issue。
- 如果您有一个功能请求,请提交一个Issue。
- 如果您想贡献,提交一个Pull Request。
安装
UIObject可通过CocoaPods获取。安装它,只需将以下行添加到您的Podfile中
pod 'UIObject'
实现
- 在您的视图中导入框架
import UIObject
- 创建一个符合UIObject协议的对象实例
let person = Person()
- 使用您想显示的对象实例化一个UIObjectViewController
let personViewController = UIObjectViewController(uiObject: person)
- 推送或展示视图控制器
/* PUSH the view onto the nav stack */
self.navigationController?.pushViewController(personViewController, animated: true)
/* PRESENT the view modally */
let modalViewWithNavigationBar: UINavigationController = UINavigationController(rootViewController: personViewController)
self.present(modalViewWithNavigationBar, animated: true)
完整示例
import UIObject
class Person: UIObject {
let name: String = "William S. Preston Esq."
var age: Int = 35
var awesome: Bool = true
var favoriteFoods: [String] = ["Pizza", "Ice Cream"]
var children: [String]? = nil
var car: String? = "Jeep"
}
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let person = Person()
let personViewController = UIObjectViewController(uiObject: person)
/* PUSH the view onto the nav stack */
self.navigationController?.pushViewController(personViewController, animated: true)
/* PRESENT the view modally */
// let modalViewWithNavigationBar: UINavigationController = UINavigationController(rootViewController: personViewController)
// self.present(modalViewWithNavigationBar, animated: true)
}
}
作者
Justin Vallely, [email protected]
许可协议
UIObject可在Apache License 2.0下使用。更多信息请参阅LICENSE文件。