iOS开发,Reveal的使用
2015-06-15 16:48
330 查看
故事的背景是这样的。
王二最近换了一个新老板,产品团队是新的,测试团队是新的,只有他一个人干着iOS的开发工作,前有老板催促项目,后有测试堵截bug,好苦逼啊。。。本来,特意为产品给的设计图会是这样的
但实际上,产品给的设计图是这样的:
果然,理想很丰满,现实很骨感。苦逼的王二同学跑去问产品:“UI元素之间的尺寸怎么确定?”产品说:“你定吧,看着和原型图一样就行。”呵呵呵呵呵,这种回答和“我要做一张图。”“什么图?”“用户一看就想买的那种图。”有什么区别?
不过这点事情难不倒王二,很快,王二就把ui部分完成了,交给产品一看,产品看了三秒后:“哎,你这个输入框的位置往上3个像素好不好?”“按钮可不可以小几个像素?”。。。。。。王二按照产品的要求修改了下,又拿去给产品看,产品扒拉扒拉说了一堆像素上的事。王二崩溃了,拉着产品在旁边,每改一步,就运行一次程序,给产品看一下效果。就这样,改代码——运行——显示效果——产品扒拉扒拉——改代码——运行——显示效果——产品扒拉扒拉。。。。
王二疯了。。。。。
王二给我讲了他的遭遇后,我问他:你知不知道一个能实时修改ui尺寸并显示的app?
王二:。。。。。。
好吧,我来告诉你。
这个软件就是大名鼎鼎的Reveal,下载地址http://revealapp.com/download/
首先下载试用版的(这个软件建议花钱买一下,物超所值啊有木有),安装。嗯,就是这个样子的
安装完后,就该配置了
1、打开命令窗口,在根目录下创建一个.lldbinit文件。输入下列命令,后回车
reveal_load_sim:模拟器加载reveal时调用的动态链接库
reveal_load_dev:真机加载reveal时调用的动态链接库
reveal_start:启动reveal的调试功能
reveal_stop:关闭reveal的调试功能
在输入完这些命令后,输入以下命令,按一下回车就保存并退出编辑模式了
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结构,这个方法我没有用过,大家可以去找找网上的资料。
王二最近换了一个新老板,产品团队是新的,测试团队是新的,只有他一个人干着iOS的开发工作,前有老板催促项目,后有测试堵截bug,好苦逼啊。。。本来,特意为产品给的设计图会是这样的
但实际上,产品给的设计图是这样的:
果然,理想很丰满,现实很骨感。苦逼的王二同学跑去问产品:“UI元素之间的尺寸怎么确定?”产品说:“你定吧,看着和原型图一样就行。”呵呵呵呵呵,这种回答和“我要做一张图。”“什么图?”“用户一看就想买的那种图。”有什么区别?
不过这点事情难不倒王二,很快,王二就把ui部分完成了,交给产品一看,产品看了三秒后:“哎,你这个输入框的位置往上3个像素好不好?”“按钮可不可以小几个像素?”。。。。。。王二按照产品的要求修改了下,又拿去给产品看,产品扒拉扒拉说了一堆像素上的事。王二崩溃了,拉着产品在旁边,每改一步,就运行一次程序,给产品看一下效果。就这样,改代码——运行——显示效果——产品扒拉扒拉——改代码——运行——显示效果——产品扒拉扒拉。。。。
王二疯了。。。。。
王二给我讲了他的遭遇后,我问他:你知不知道一个能实时修改ui尺寸并显示的app?
王二:。。。。。。
好吧,我来告诉你。
这个软件就是大名鼎鼎的Reveal,下载地址http://revealapp.com/download/
首先下载试用版的(这个软件建议花钱买一下,物超所值啊有木有),安装。嗯,就是这个样子的
安装完后,就该配置了
1、打开命令窗口,在根目录下创建一个.lldbinit文件。输入下列命令,后回车
vim ~/.lldbinit2、回车后,输入下列代码:
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结构,这个方法我没有用过,大家可以去找找网上的资料。
相关文章推荐
- 主题 : sizeWithFont iOS 7.0 新方法的写法
- ios之TableViewCell重用机制避免重复显示问题
- IOS开发—视图控制器左边缘右滑pop出栈
- iOS国际化
- iOS-AVAudioRecorder、EMCDDeviceManager 报错解决方法
- 集成支付宝IOS
- IOS开发—通过ChildViewController实现view的切换
- iOS每日一记 ------之正则表达式 判断手机号 限制textfiled的长度
- iOS 后台保持长连接
- IOS中NSUserDefaults的用法(轻量级本地数据存储)
- iOS唯一标示符引导
- IOS LocationManager定位国内偏移,火星坐标(GCJ-02)解决方法
- iOS本地闹钟提醒实现
- IOS用正则验证手机号
- iOS--通过runtime完成归档,反归档
- 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!
- IOS - CoreData的使用
- IOS第三方之SVProgressHUD
- [iOS]判断当前时间是否在指定的时间段内
- IOS中NSUserDefaults的用法(轻量级本地数据存储)