Castie!

正态分布, 优劣伴生

北冥有鱼,其名为鲲(kūn)。鲲之大,不知其几千里也;化而为鸟,其名为鹏。鹏之背,不知其几千里也;怒而飞,其翼若垂天之云。是鸟也,海运则将徙于南冥。南冥者,天池也。


北海若曰:“井鼃不可以语于海者,拘于虚也;夏虫不可以语于冰者,笃于时也;曲士不可以语于道者,束于教也。今尔出于崖涘,观于大海,乃知尔丑,尔将可与语大理矣。

iOS 集成Reveal UI调试利器

Tools Reveal 1.5.1

在 iOS 开发中,我们有时很希望有一款类似 Web 开发中的 UI Debug 工具(例如:Firebug),让我们能够实时查看 UI 的结构,还可以实时更改某个 UIView 的位置和大小的相关属性值查看效果。这里我们发现原来真有这么一款强大的工具存在,他就是 Reveal。(虽然Xcode6 之后有「Capture View Hierarchy」功能,但支持的功能还只是基础的查看 UI 结构,对比 Reveal 来说,就显得逊色多了)。

接着上一篇, 我们先在项目中创建一些Controller, 由于是1.0版本, 就先创建3个Controller 继承UIViewController, 其实也可以按照需求继承UITableViewController 或 UICollectionViewController. 在SQBundleVersionManager.m 中导入Controller的头文件, 并添加对应的title. icon图片先填空字符串即可.

配置Controller 信息 此时我们发现ProfileViewController不显示图标和不支持切换, 难道是SQExtension 的框架有问题吗? 并不是!! 由于之前的项目有用到像新浪微博的中间式弹出Controller 故我们先将此功能关闭!!

将centerButton的 hidden属性设为YES 设置完成之后我们就能够发现ProfileViewController已经可以切换显示了, 接下来我们在LifestyleViewController中创建TableView 设置Delegate 实现创建代理方法.

创建TableView 这里分享给大家一个小技巧 将代码拖入代码库 在想要输入的地方按照<#input#>格式输入,Completion Shortcut中输入对应的快捷键 点击Done 按钮即可. 下图为懒加载的固定写法 写入代码库既可以提高开发效率,又可以保持代码整洁有规范.

代码库配置 接下来我们就要在项目中集成Reveal UI调试利器. 其实Reveal不仅能够实时查看UI结构 Vim配置及导入静态库 Other Linker Flags项增加-ObjC -framework Reveal之后 在越狱的iOS设备下 还可以逆向工程(即可以看到任何App 的UI层次结构来推算实现方法) 总之狂霸酷炫屌炸天!!

今天要分享的是不修改Xcode工程并加载Reveal(此方法仅适用于在iOS模拟器上运行的应用) 通过不修改Xcode工程文件来加载Reveal的方式,您可以检视任何一个您正在开发的iOS应用,而不需要对这些应用的工程做任何修改。另一个好处就是,您不需要再担心,犯下一不小心将Reveal库连接到应用中发布了的错误。

1.打开您的iOS工程,选择View → Navigators → Show Breakpoint Navigator

打开您的iOS工程,选择View → Navigators → Show Breakpoint Navigator 2.在面板左下角,点击+按钮并选择Add Symbolic Breakpoint

3.在Symbol输入区内输入UIApplicationMain 点击Add Action按钮, 确认Action被设置为Debugger Command。

4.将 expr (Class)NSClassFromString(@”IBARevealLoader”) == nil ? (void )dlopen(“/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib”, 0x2) : ((void)0) 拷贝至action 的输入区

5.选中Automatically continue after evaluating actions选项。

注意: 请确认Reveal.app的路径信息符合您Mac的实际位置。

6.右击刚才新创建的断点,选择Move Breakpoint To → User

您可以像其他断点一样,禁用或启用此断点。用户级别断点在所有的Xcode工程中都可以使用。 7.编译程序 在Reveal中选择对应应用 届时已经能看到层次分明的应用啦

在Reveal 中显示应用 最终在模拟器中如下图显示

最终显示 具体源码及SQExtension方法信息 请到github上进行下载!

最近的文章

UI/UX 产品原型 从Axure开始

Tools Axure RP 7.0俗话说的好, 不懂产品的设计师 不是一个好开发者! 作为一个iOS开发者, 也势必随波逐流的力争跻身全栈的行列, 话说产品是什么? 什么是产品? 什么是好产品? 好产品能为我们带来什么? 作为产品小白 还知知甚浅.. 但是我相信人人都是产品经理, 每个开发者都有一个做产品的心, 因为一个好产品背后带来的效应和效益是巨大的.接着上周的项目 上期我们已经把项目的基本框架给搭出来了,也集成了Reveal 可以实时监控UI的层次的变化 那Lifestyle到底是...…

UI设计继续阅读
更早的文章

iOS 做好开工前的准备

IDE Xcode5有人肯定会问 现在都iOS9了 再过一个月都iOS10了 为什么不用最新版的Xcode7 ? 出于三个原因,第一我的OS X的版本是10.8.5, 所以最高就能安装Xcode5,第二现在大多数企业都从iOS7开始适配,Xcode5勉强够用(iphone6/6s/plus 的图片适配就将就用@2x吧),第三个人觉得Xcode7的模拟器比Xcode5的模拟器慢的不是一星半点!!扯了那么多,准备开工起来吧, 先将SQExtension整体导入我们的项目,(SQExstensi...…

移动开发继续阅读