(CBIntrospector)内部检查工具是IOS和IOS模拟器的小工具集,帮助在调试的UIKit类的用户界面,它尤其有用于动态UI布局创建,或可以在运行时改变,或调节性能,发现非不透明的视图,或不必要重新绘制的视图.它使用于IOS模拟器设计,但是也可用在设备上!
它使用键盘快捷键来处理开始,结束和其他命令.它也可以通过一个广泛的 UIGestureRecognizer 调用,如果它是在设备上使用.
特点
1.简单的设置和使用
2.兼容于IOS模拟器伴随的桌面应用程序
3.在运行过程中发送消息(调用任何方法)到所选的视图从桌面应用程序,或从设备(轻按状态栏)
4.通过应用程序全键盘命令控制
5.突出视图帧
6.显示一个视图位置与大小,包括主窗口边缘的距离
7.在运行过程中使用快捷键,移动和调整视图帧
8.记录视图属性,包括子类的属性,行动和目标(见下面的例子)
9.记录 - 有用的辅助功能属性UI自动化脚本
10.手动调用setNeedsDisplay,setNeedsLayout reloadData(UITableView中)
11.突出显示所有视图概述
12.突出非不透明的所有视图,
13.显示视图警告,定位在非整数的位置(绘制时,会造成模糊不清)
14.打印层次(通过私人方法recursiveDescription)控制台
用法
在开始之前确保调试环境变量设置。 CBIntrospect没有设置将无法运行,以防止它被留在生产使用。
添加CBIntrospect类文件到您的项目中,如果需要的话,添加QuartzCore的框架。去启动:[window
makeKeyAndDisplay]
// always call after makeKeyAndDisplay.
#if TARGET_IPHONE_SIMULATOR
[[CBIntrospect sharedIntrospector] start];
#endif
#if 目标为模拟器,但并非必须是一个好主意,以进一步防止在生产代码中留下它。
一旦安装,只需按空格键来默认调用或然后开始点击视图上获取信息。您也可以点击并拖动周围的界面。
提供自定义的视图名称:
- (void)viewDidLoad
{
[super viewDidLoad];
// provide custom names for use by the View Introspector desktop app and console output
[[CBIntrospect sharedIntrospector] setName:@"myActivityIndicator" forObject:self.activityIndicator accessedWithSelf:YES];
[[CBIntrospect sharedIntrospector] setNameForViewController:self];
}
使用Interface Builder中设置自定义的视图名称:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// must be set before any nib is called
[CBIntrospect setIntrospectorKeyName:@"introspectorName"];
...
包括一个小的演示应用程序对其进行测试。
选择键盘快捷键
1.启动/停止:空格
2.帮助:?
3.选择视图打印属性和操作在控制台:P
4.打印所选视图的辅助功能属性和行动在控制台:
5.切换所有视图轮廓:o
6.切换突出非不透明的视图:O
7.微调查看向左,向右,向上和向下:4 6 8 2(使用数字键盘)或←→↑↓
8.打印出选定的视图微调/调整大小后的新frame在控制台:0
9.打印选定的视图递归描述在控制台:V
记录选定视图属性
按 p 的打印出有关选定视图中的可用属性。将努力使CBIntrospect的价值感,它可以显示更多有用的信息。一个UISegmentedControl的一个例子:
** UISegmentedControl:0x6d5eca0 : UIControl : UIView : UIResponder : NSObject **
** UIView properties **
tag: 0
frame: {{20, 66}, {207, 30}} | bounds: {{0, 0}, {207, 30}} | center: {123.5, 81}
transform: [1, 0, 0, 1, 0, 0]
autoresizingMask: UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin
autoresizesSubviews: YES
contentMode: UIViewContentModeScaleToFill | contentStretch: {{0, 0}, {1, 1}}
backgroundColor: nil
alpha: 1.00 | opaque: NO | hidden: NO | clipsToBounds: NO | clearsContextBeforeDrawing: YES
userInteractionEnabled: YES | multipleTouchEnabled: NO
gestureRecognizers: nil
superview: <UIView: 0x6d4e820; frame = (0 20; 320 460); autoresize = W+H; layer = <CALayer: 0x6d4e8a0>>
subviews: 2 views [<UISegment: 0x6d5f680>, <UISegment: 0x6d5ef90>]
** UISegmentedControl properties **
removedSegment: nil
segmentedControlStyle: 2
numberOfSegments: 2
apportionsSegmentWidthsByContent: NO
selectedSegmentIndex: 0
tintColor: nil
** Targets & Actions **
自定义键绑定
编辑文件DCIntrospectSettings.h改键绑定。您可能要更改的键绑定,如果你使用一台笔记本电脑/无线键盘开发。请记住,你可以使用“查看内部检查桌面应用程序与UIView对象,甚至调用方法对所选视图使用视图使者(见截图)。
许可
在MIT许可下提供。
CBIntrospector DCIntrospect到CBIntrospect变化由克里斯托弗·贝丝
最初由帕特里克理查兹domesticcatsoftware.com的概念和实施DCIntrospect
demo下载:http://download.csdn.net/detail/p709723778/5718267
源地址:
https://github.com/cbess/CBIntrospector