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...…

• 移动开发继续阅读