• CBIntrospector俗称:内部检查工具


     
    (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中设置自定义的视图名称:

    IOS开发之----CBIntrospector使用(翻译)

    - (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
  • 相关阅读:
    [daily][netcat] 在UNIX socket上使用netcat
    [emacs] emacs设置python code的indent
    [dev][python] 从python2进阶到python3你都需要了解什么
    [strongswan][autoconf][automake][cento] 在CentOS上编译strongswan git源码时遇到的autoconf问题
    [strongswan] strongswan是如何实现与xfrm之间的trap机制的
    对不可描述的软件安装sfbo插件
    [daily] 如何用emacs+xcscope阅读内核源码
    [daily] cscope
    [dev][ipsec] 什么是xfrm
    [dev][ipsec] netlink是什么
  • 原文地址:https://www.cnblogs.com/yingkong1987/p/3336622.html
Copyright © 2020-2023  润新知