之前我写了几篇IOS进阶文章介绍了开发必不可少的JSPatch以及YYKit系列。这次我又发现了一个UI界面调试神器Reveal。最近刚升级到XCode8,项目中很多UI在IOS10中显示不正常,光从代码层面很难分析出原因。在Reveal的帮助下,很快就分析出了原因。就我亲身经历来看,Reveal有下面几个优点:
不用重新运行编译就能改变模拟器上的界面(每次都编译实在是浪费了不少时间,特别是在有xib的情况下)
可以查看修改约束(内容比Xcode自带的界面调试更多,甚至能修改)
越狱后可以查看别人的app布局
安装Reveal
Reveal是收费的,提倡正版,网上也有很多破解版,可以自行查找。
1、从官网下载Reveal下载地址。我下载的是1.5.1版本。
2、打开Reveal,点击 Help → Show Reveal Library in Finder。
3、将Reveal.framework文件拖入工程内(左侧是真机,右侧是模拟器)。
4、点击Build Phases 然后从Link Binary With Libraries 删除Reveal.framework。
5, 然后选中Build Settings 在搜索栏中输入 Other Linker Flags。选中Other Linker Flags
在Other Linker Flags中输入下面代码 :-ObjC -lz -framework Reveal
6、运行模拟器,然后打开Reveal。
Reveal的使用
Reveal的界面和xcode8自带的UI调试界面很相似,左侧是各个视图和约束,右侧是层状结构,可以双击聚焦到某一视图上。类似于开发界面,有frame、bounds,等基本属性和Xcode的很像。
最神奇的地方是这里的值可以自己修改,修改完毕后模拟器也会跟着改变。刷新Reveal快捷键是command + r。
有了这些功能我们就可以快速定位UI问题,并针对解决。比如说我们公司项目升级到IOS10的时候,有个view并没有出现,而在IOS9上显示正常,同一份代码很难查出原因。进过Reveal调试我发现这个cell的ContentView的frame.width居然在IOS10下为0。。不知道是不是IOS10的bug。于是加上个宽度约束就显示了。
参考
- 参考文章:文章
我是翻滚的牛宝宝,欢迎大家评论交流~