Traits是一个可以实现实时更新代码,而不需要重新运行程序就可以看到效果的库,效果如下图所示,源码地址在这里

Traits主要是依赖于Injection的代码注入功能来实现实时更新。它可以是在代码中更新视图对象的属性,也可以在一个json配置文件甚至是远程的配置文件中处理,且做到实时更新。对配置文件的处理,主要依赖于ObjectMapper来实现json数据与属性的映射,同时借助KZFileWatchers库来监听配置文件的更新。

不过个人感觉有两点稍显麻烦:

  1. 需要为每个属性定义一个类并继承Trait类(不同类的相同属性可以定义一个类,如UILabelUITextFiledfont属性),如图2代码所示。

  1. 同时需要为每个元素的每个属性都定义一个标识,如图3代码所示。不过作者提供了一个shell脚本(generateTraitsIdentifiers.sh)来处理。