UIObject 0.3.0

UIObject 0.3.0

Justin Vallely 维护。



UIObject 0.3.0

  • 作者:
  • Justin Vallely

UIObject

Version License Platform CocoaPods tests Swift Dependencies

概述

快速渲染您应用中任何结构或类中所有属性的表格视图。根据需要添加和移除属性,视图会自动调整。这是可视化从 JSON 对象解析出的模型数据的好方法。足够强大以用于调试,同时足够美观以展示给用户。

  • 每个表格元素显示属性名称及其当前值
  • 处理可选值
  • 闭包值显示为 "(函数)"
  • 所有方法均为 open - 覆盖视图以匹配您的应用
  • 可选:将对象声明为既 CodableUIObject,您将拥有一个快速且方便的解析->显示层次结构的解决方案

示例

要运行示例项目,请克隆仓库,然后首先从 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文件。