IOS UI 高级调试

转载 2016年08月30日 13:24:04

原文链接:http://blog.csdn.net/openglnewbee/article/details/42195361

参考链接 :http://blog.csdn.net/sunnyboy9/article/details/49383231

reveal 破解安装:http://www.jianshu.com/p/0cc7089143a3#

在ios8以前,我们想要进行ui实时调试,可以依赖的技术手段有:

 用xcode启动app,然后点击xcode暂停运行按钮,然后在调试控制台输入下面语句:

po [[UIWindow keyWindow] recursiveDescription]

然后就可以看到完整的UI结构和层级关系,类似如下:

<UIWindow: 0x7b691cd0; frame = (0 0; 320 480); gestureRecognizers = <NSArray: 0x7b6921f0>; layer = <UIWindowLayer: 0x7b691e00>>

   | <UIView: 0x7c078b30; frame = (0 0; 320 480); autoresize = W+H; autoresizesSubviews = NO; layer = <CALayer: 0x7c078440>>

   |    | <UIView: 0x7c078ca0; frame = (10 87; 145 145); autoresize = RM+BM; autoresizesSubviews = NO; layer = <CALayer: 0x7c0786e0>>

   |    | <UIView: 0x7c078f20; frame = (165 87; 145 145); autoresize = RM+BM; autoresizesSubviews = NO; layer = <CALayer: 0x7c078630>>

   |    | <_UILayoutGuide: 0x7c079130; frame = (0 0; 0 20); hidden = YES; layer = <CALayer: 0x7c0792d0>>

   |    | <_UILayoutGuide: 0x7c079710; frame = (0 480; 0 0); hidden = YES; layer = <CALayer: 0x7c079790>>

po [self.view recursiveDescription]可以看到当前view下的ui结构,示例如下:

<UIView: 0x7ca8ceb0; frame = (0 0; 600 600); autoresize = RM+BM; autoresizesSubviews = NO; layer = <CALayer: 0x7ca8cb30>>

   | <UIView: 0x7ca73890; frame = (10 87; 285 285); autoresize = RM+BM; autoresizesSubviews = NO; layer = <CALayer: 0x7ca89200>>

   | <UIView: 0x7ca7f520; frame = (305 87; 285 285); autoresize = RM+BM; autoresizesSubviews = NO; layer = <CALayer: 0x7ca7ce70>>

   | <_UILayoutGuide: 0x7ca8bd30; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x7ca814d0>>

   | <_UILayoutGuide: 0x7ca93b20; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x7ca8d530>>

 另外reveal等工具也可以实现可视化分析ui的功能,该工具收费(有30天的免费试用期)。

在ios8/xcode6以后,苹果引入了新的技术手段支持我们进行实时ui调试;使用xcode运行app过程中,按下底部的Debug View Hierarchy 按钮,或者从菜单中选择Debug > View Debugging > Capture View Hierarchy 来启动视图调试:



启动视图调试后,Xcode会对应用程序的视图层次拍一个快照并展示三维原型视图来探究用户界面的层级。该三维视图除了展示app的视图层次外,还展示每个视图的位置、顺序和视图尺寸,以及视图间的交互方式。
该调试工具非常强大,结合storyboard一起使用可以很好的支撑ios开发的页面布局调整/性能优化等需求,具体的功能这里不一一展开,请开发人员在使用中进行总结和摸索。




reveal 下载地址:http://revealapp.com/download/

相关文章推荐

iOS开发UI高级—20Quartz2D简单使用(二)

iOS开发UI篇—Quartz2D简单使用(二) 一、画文字 代码: 1 // 2 // YYtextview.m 3 // 04-写文字 4 // 5 // Created by...

iOS之UI高级---Quartz2D基本使用(1)

一:Quartz 2D介绍:①二维图形绘制引擎,支持iOS环境和Mac OS X环境 ②是CoreGraphics框架的一部分,其中的很多数据类型和方法都是CG开头。会经常见到Quartz 2D和C...

iOS开发UI高级—31CAlayer(自定义layer)

iOS开发UI篇—CAlayer(自定义layer) 一、第一种方式 1.简单说明 以前想要在view中画东西,需要自定义view,创建一个类与之关联,让这个类继承自UIView,然后重写它的Draw...

ios开发 UI高级 Cocoapods安装过程

CocoaPods是一个负责管理iOS项目中第三方开源库的工具,开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。通过CocoaPods...

iOS开发 UI高级之CoreData

Core Data 简介 ·CoreData用于做数据持久化,适合大数据量的存储和查询 注意:用于数据持久化一般有:CoreData、Sqlite数据库、属性列表、归档 四种方式 ·CoreData不...

iOS开发UI高级—22Quartz2D使用(矩阵操作)

iOS开发UI篇—Quartz2D使用(矩阵操作) 一、关于矩阵操作 1.画一个四边形 通过设置两个端点(长和宽)来完成一个四边形的绘制。 代码: 1 - (void)drawRect:(CGR...

iOS开发UI高级—01常见的项目文件介绍

iOS开发UI篇—常见的项目文件介绍 一、项目文件结构示意图   二、文件介绍 1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件 2.frameworks文...

iOS开发UI高级—10使用picker View控件完成一个简单的选餐应用

iOS开发UI篇—使用picker View控件完成一个简单的选餐应用 iOS开发UI篇—使用picker View控件完成一个简单的选餐应用 一、实现效果   说明:点击随机按钮,能够自动选取,下...

iOS中 数据持久化 UI高级_17

数据持久化的本质就是把数据由内写到本地(硬盘中),在iOS指将数据写到沙盒文件夹下; 沙盒机制:指的就是采用沙盒文件夹的形式管理应用程序的本地文件,而且沙盒文件夹的名字是随机分配的,采用十六进制方法命...

ios开发 UI高级 更新Ruby

更新Ruby: 1、安装rvm(Ruby Version Manager)Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset) 在终端输入:curl -L get.rvm....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS UI 高级调试
举报原因:
原因补充:

(最多只允许输入30个字)