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初级+高级全套视频教程

16.4 网络与多线程1:定时器在多线程的使用.mov 50.1M 2015-07-11 22:24 16.7 网络与多线程1:封装网络请求.mov 147M 2015-07-11 22:2...
  • javateshuyufa
  • javateshuyufa
  • 2017年02月13日 19:33
  • 578

iOS开发之使用dyci实时调试UI

如果你的项目是使用代码布局的话,在代码里面对控件的布局做一些调整时,是不能实时看到修改的效果的,每次修改都需要重新跑一下工程。而通过使用dyci这个工具,它可以在程序运行的时候进行代码注入,而无需重新...
  • hnsdwhl
  • hnsdwhl
  • 2015年06月27日 21:53
  • 771

IOS-UI高级之深浅拷贝

1、深拷贝(mutableCopy) 深拷贝也称内容拷贝就是增加一个指针并且申请一个新的内存,使这个增加的指针指向这个新的内存。即产生一个新的对象,mutableCopy返回的对象都是可变的 ...
  • A_Studystudy
  • A_Studystudy
  • 2016年07月31日 14:02
  • 163

iOS开发之Xcode常用调试技巧总结 断点高级

iOS开发之Xcode常用调试技巧总结 断点 lldb
  • yiral
  • yiral
  • 2016年11月03日 11:34
  • 743

Reveal UI调试利器,逆向app的实践教程:Reveal别人的 app(一)

这篇教程是Reveal别的app的教程。 想要实现这个目的,我们要具备以下的结果条件: (1)一台已经越狱的iphone (2)OS X系统,同时还需有Reveal.app用于在OS X上运行。 1、...
  • u010460963
  • u010460963
  • 2015年10月16日 14:19
  • 1072

iOS强大私有类UIDebuggingInformationOverlay(Apple隐藏的调试大招) 了解

本文来自简书,原文地址:http://www.jianshu.com/p/a228cafd418f 今天吃完饭,有点闲。就去逛逛某博,看看关注的大神们最近有何动态,能不能学到啥,其实就是去抱抱大...
  • qq_30513483
  • qq_30513483
  • 2017年05月31日 14:14
  • 1210

iOS调试技巧—调试状态修改UI

原文: http://www.henishuo.com/ios-lldb-debug-tech 临时刷新界面UI(仅在模拟器下有效,xcode7.2测试) 本demo中,最开始按钮...
  • JgPFei
  • JgPFei
  • 2016年02月20日 14:43
  • 409

Xcode 高级调试技巧

在苹果的官方文档中列出了我们在调试中能用到的一些命令,我们在这重点讲一些常用的命令 调试本地文件方法(Mac OS X):(lldb) target create "/Users/piaoy...
  • xxq_2011
  • xxq_2011
  • 2017年09月03日 21:52
  • 1170

Android基础————UI布局之高级控件详解

UI高级控件: (1)SeekBar:可以拖动的进度条 (2)ProgressBar: 常用属性: style: style="?android:attr/progressBarStyle"默认的进度...
  • u012369385
  • u012369385
  • 2016年09月04日 16:14
  • 1495

.NET高级调试(奋斗的小鸟)_PDF 电子书

下载地址:http://pan.baidu.com/share/link?shareid=1028907117&uk=721744522 内容简介     《.NET高级调试》内容主要包括:调试工具...
  • tjoy2005
  • tjoy2005
  • 2013年10月10日 18:23
  • 1278
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS UI 高级调试
举报原因:
原因补充:

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