iOS开发,Reveal的使用

来源:互联网 发布:中华英才网 知乎 编辑:程序博客网 时间:2024/05/16 16:11

故事的背景是这样的。

王二最近换了一个新老板,产品团队是新的,测试团队是新的,只有他一个人干着iOS的开发工作,前有老板催促项目,后有测试堵截bug,好苦逼啊。。。本来,特意为产品给的设计图会是这样的

但实际上,产品给的设计图是这样的:


果然,理想很丰满,现实很骨感。苦逼的王二同学跑去问产品:“UI元素之间的尺寸怎么确定?”产品说:“你定吧,看着和原型图一样就行。”呵呵呵呵呵,这种回答和“我要做一张图。”“什么图?”“用户一看就想买的那种图。”有什么区别?

不过这点事情难不倒王二,很快,王二就把ui部分完成了,交给产品一看,产品看了三秒后:“哎,你这个输入框的位置往上3个像素好不好?”“按钮可不可以小几个像素?”。。。。。。王二按照产品的要求修改了下,又拿去给产品看,产品扒拉扒拉说了一堆像素上的事。王二崩溃了,拉着产品在旁边,每改一步,就运行一次程序,给产品看一下效果。就这样,改代码——运行——显示效果——产品扒拉扒拉——改代码——运行——显示效果——产品扒拉扒拉。。。。

王二疯了。。。。。

王二给我讲了他的遭遇后,我问他:你知不知道一个能实时修改ui尺寸并显示的app?

王二:。。。。。。

好吧,我来告诉你。

这个软件就是大名鼎鼎的Reveal,下载地址http://revealapp.com/download/

首先下载试用版的(这个软件建议花钱买一下,物超所值啊有木有),安装。嗯,就是这个样子的


安装完后,就该配置了

1、打开命令窗口,在根目录下创建一个.lldbinit文件。输入下列命令,后回车

vim ~/.lldbinit
2、回车后,输入下列代码:

command alias reveal_load_sim expr (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2);command alias reveal_load_dev expr (void*)dlopen([(NSString*)[(NSBundle*)[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2);command alias reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];command alias reveal_stop expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object:nil];
以上是四句命令,命令的意思是,给lldb设置了4个别名,这四个别名的意义是:

reveal_load_sim:模拟器加载reveal时调用的动态链接库

reveal_load_dev:真机加载reveal时调用的动态链接库

reveal_start:启动reveal的调试功能

reveal_stop:关闭reveal的调试功能

在输入完这些命令后,输入以下命令,按一下回车就保存并退出编辑模式了

:wq


3、在工程中配置reveal链接到模拟器

打开工程后,在appdeleget中的didfinished:方法中打下断点,并按下图编辑断点:


打完断点后,就可以选择模拟器运行工程了,当工程跑起来后,打开reveal,点击左上角的工程选择,会看到我们的工程。如图:

选择我们的app的工程,就能在reveal中看到我们的ui布局了。

左边是干嘛的我就不说了,中间是当前页面的ui,右边是ui元素的相关尺寸、位置信息。在右边对应的框中可以修改相关数值并即时显示。

在Xcode中也提供了这种即时查看ui的功能,但是没法动态实时修改所以还是用reveal比较方便一点,而且,在修改了某个页面的元素尺寸后,在模拟器上计入下一个页面,回到reveal上之后重新连


reveal还可以在真机调试中链接真机,在编辑断点时要修改为相应的指令。并且将reveal的动态链接库一并添加进工程中:

1、点击revel菜单的“help——》show reveal library in finder”在finder中查找reveal的动态链接库:libReveal.dylib,并将其拖入工程。

2调整libReveal.dylib的引用方式,这里我们只需要将libReveal.dylib文件拷贝到Sandbox中,但是我们在引入libReveal.dylib的时候Xcode默认是以Link Binary With Libraries的方式的,实际上应该是Copy Bundle Resources,所以应该先将libReveal.dylib从Link Binary With Libraries中移除掉,然后在Copy Bundle Resources中添加。

3、修改断点处的指令为reveal_load_dev.


reveal还可以连接破解版的苹果设备,来查看其他家的appUI结构,这个方法我没有用过,大家可以去找找网上的资料。

0 0
原创粉丝点击