项目调试小技巧总结

本文介绍如何在iOS和OSX中通过设置启动参数显示对齐矩形以辅助布局调整,并介绍了使用AutoLayout的未文档化特性扫描视图层次结构以定位布局问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设置启动参数

举例说明 可视化对齐矩形

在运行时用对齐矩形覆盖在视图上,在scheme中设置一个启动参数即可。在iOS中是UIViewShowAlignmentRects,在OSX中是UIViewShowAlignmentRects,将该参数的值设置为YES,并且用一个短划线做前缀,矩形就会显示在各个视图上。 设置方式:

显示效果:

注: 调出scheme的快捷方式command + shift + <

也可通过代码设置该选项

[[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"UIViewShowAlignmentRects"];
复制代码

AutoLayout扫描整个视图层次寻找问题

AutoLayout为iOS提供了一个未文档化的跟踪特性,可以扫描整个视图层次结构来寻找有歧义的布局问题。在主窗口(key window)上调用(其实他对层次结构上的任何视图都可用),报告完整的层次跟踪。

使用代码跟踪:

NSLog(@"%@", [[[UIApplication sharedApplication]keyWindow]performSelector:@selector(_autolayoutTrace)]);
复制代码

在调试窗口中,使用

(lldb) po [[UIWindow keyWindow]_autolayoutTrace]

•UIWindow:0x13becf860
|   •UIView:0x13d98dc00
|   |   *_UILayoutGuide:0x13d99e990
|   |   |   _UIDebugAlignmentRectView:0x13bdbb910
|   |   *_UILayoutGuide:0x13da2a450
|   |   12:0x13da20cc0
|   |   |   _UIDebugAlignmentRectView:0x13bd51a40
|   |   _UIDebugAlignmentRectView:0x13bd70de0
|   _UIDebugAlignmentRectView:0x13bdb79c0

Legend:
	* - is laid out with auto layout
	+ - is laid out manually, but is represented in the layout engine because translatesAutoresizingMaskIntoConstraints = YES
	• - layout engine host
复制代码

修改变量名称

快速修改当前范围内的变量名

  • 将光标移到变量名上
  • 使用 Cmd-Ctrl-E 按键选中
  • 直接修改就可以了

如果是全局变量,则全部修改;如果是局部变量,则只修改当前局部范围内的

使用正则表达式进行搜索

使用cmd-alt-ctrl-p 调出表达式的说明列表

持续更新

持续更新

持续更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值