iOS开发UI调试神器----Reveal
做iOS的开发,UI是非常非常重要的一环。调试时我们一般用模拟器,提交前用真机做測试。用模拟器来调试UI效果尽管快捷方便,但有时仍然希望有更强大的工具来帮助分析UI,尤其是专注在UI的效果调试时。近期看到了Reveal这个工具,发现真的是强大无比,类似于FireFox上的FireBug,对于UI上的层的显示非常清晰直观,能够非常方便的用于UI的调试,用来学习UI的使用也是无上利器。
这个工具眼下已经出到正式版了,须要花费银子购买,好在还有30天的试用版本号能够下载尝尝鲜。(下载地址http://revealapp.com),据说曾经有免费的Beta版本号,哪位大大假设有的话请分享一下给我,多谢了。
安装Reveal不算复杂,要把Reveal用到project中则须要把framework或者dylib编入。
1. 打开Xcodeproject
2. 打开Revel工具,选择Menu->Help->Show Reveal Library in Finder,这样就会打开RevealApp里面带的库
3. 把Reveal.framework增加project,在弹出框中选中Copy items into destination group’s folder (if needed).
4.在project设置中,在Other Linker Flags项添加-ObjC -framework Reveal
假设你使用的还是Xcode4,那么还须要添加-frame CFNetwork -frame QuartzCore -framework CoreGraphics
5. 执行你的应用,应用能够是在模拟器上,也能够在真机上,只是必须保证Reveal和你的设备在同一个网络里面,然后选择Reveal里面的链接目标,连上应用后UI就会显示出来,每一个层次,每一个元素都能够显示,并且能够选中了看到数据。
我这里做的说明是把Reveal作为静态库链接到应用中的,也能够作为动态库来加载,当然,设置稍微有点不同,须要在AppDelegate.m文件里添加加载和移除的代码。
最最强悍的是,有人研究出了用Reveal来观看随意app的UI方法,并且也不复杂,这个属于逆向project的范畴了,在UI的学习上还是不错的(http://c.blog.sina.com.cn/profile.php?blogid=cb8a22ea89000gtw)。
iOS开发UI调试神器----Reveal的更多相关文章
- iOS开发UI篇—常见的项目文件介绍
iOS开发UI篇—常见的项目文件介绍 一.项目文件结构示意图 二.文件介绍 1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件 2.frameworks文件夹主要 ...
- iOS开发UI篇章 15-项目中的常见文件
iOS开发UI篇-常见的项目文件介绍 一.项目文件结构示意图 二.文件介绍 1.products目录:主要用于mac电脑开发的可运行文件.ios开发用不到这个文件 2.frameworks目录主要用来 ...
- iOS开发UI篇—CAlayer(自定义layer)
iOS开发UI篇—CAlayer(自定义layer) 一.第一种方式 1.简单说明 以前想要在view中画东西,需要自定义view,创建一个类与之关联,让这个类继承自UIView,然后重写它的Draw ...
- iOS开发UI篇—UITabBarController简单介绍
iOS开发UI篇—UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...
- iOS开发-UI 从入门到精通(三)
iOS开发-UI 从入门到精通(三)是对 iOS开发-UI 从入门到精通(一)知识点的综合练习,搭建一个简单地登陆界面,增强实战经验,为以后做开发打下坚实的基础! ※在这里我们还要强调一下,开发环境和 ...
- iOS开发-UI 从入门到精通(二)
iOS开发-UI 从入门到精通(二)是对 iOS开发-UI 从入门到精通(一)知识点的巩固,主要以习题练习为主,增强实战经验,为以后做开发打下坚实的基础! ※开发环境和注意事项: 1.前期iOS-UI ...
- iOS开发UI篇—懒加载
iOS开发UI篇—懒加载 1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了, ...
- iOS开发UI篇—CAlayer层的属性
iOS开发UI篇—CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...
- iOS开发UI篇—CAlayer(创建图层)
iOS开发UI篇—CAlayer(创建图层) 一.添加一个图层 添加图层的步骤: 1.创建layer 2.设置layer的属性(设置了颜色,bounds才能显示出来) 3.将layer添加到界面上(控 ...
随机推荐
- CentOS6.5下安装远程桌面服务端软件VNC Server
VNC 使您能够远程訪问和控制您的计算机从还有一计算机或移动设备上,不管你在世界的不论什么地方. 常见的使用情形,包含给同事和朋友提供桌面支持.远程管理您的服务器. 将 VNC Server部署到您想 ...
- 拷贝构造函数(深拷贝vs浅拷贝)
拷贝构造函数(深拷贝vs浅拷贝) 类对象之间的初始化是由类的拷贝构造函数完毕的.它是一种特殊的构造函数,它的作用是用一个已知的对象来初始化还有一个对象.假设在类中没有显式地声明一个拷贝构造函数.那么, ...
- JavaScript的闭包理解
因为本人是做java web 开发的,对js仅仅是存在非常浅的理解,js闭包的概念非常早就听说了,可是一直都不明确是什么意思,今天准备梳理一下闭关的概念; 闭包(closure)是Javascript ...
- iOS_第3方类库MBprogressHUD
1,将下载好的第3方类库MBprogressHUD源代码包增加到project(事实上就是一个.h和.m文件) 2,进入project的Build Phases,将源代码包里面的所有.m文件所有加入到 ...
- angularjs1-7,供应商
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- UIimageView和UIimage的小区别
UIimageView 用来显示一张图片或者显示一组动画图片 UIimage 不是一个控件,只是一个普通的类,用来生成一张图片,只单纯的生成一张图片,图片只会被加载到内存,如果想要让用户 ...
- windows上上传代码到Github
Repository name: 仓库名称 Description(可选): 仓库描述介绍 Public, Private : 仓库权限(公开共享,私有或指定合作者) Initialize this ...
- 关于requestAnimationFrame()和cancelAnimationFrame()与定时器之间的比较
在渲染页面动画的时候,其实也没有必要用定时器(setInterval),其实requestAnimationFrame()和cancelAnimationFrame()也能达到相应的效果,他是HTML ...
- c#将http调用返回额json中的有关中文的unicode转换为中文
c#将http调用返回额json中的有关中文的unicode转换为中文 中文转Unicode:HttpUtility.UrlEncodeUnicode(string str);转换后中文格式:&quo ...
- 像素点的Hessian矩阵
最近开始学习图像处理相关知识,碰到对像素点求黑塞矩阵查了资料才搞懂. 给定一个图像f(x,y)上的一点(x,y).其黑塞矩阵如下: 因为导数的公式是f'(x)=(f(x+dx)-f(x))/dx在数字 ...