InAppViewDebugger - UIView 调试工具


MIT
iOS
Swift

软件简介

InAppViewDebugger 是一个 UIView 调试器(类似 Reveal 或 Xcode),可以嵌入到应用中实现设备的调试功能。

InAppViewDebugger 是可以实现了视图调试器的库,提供三维视图快照和视图的层次图。类似
RevealXcode
的视图调试器

。关键的区别在于其可以嵌入到应用中,并可直接在设备上调试 UI 问题,无需在电脑上进行调试。

主要特性

  • 使用 SceneKit 实现的 3D 快照视图: 支持手势控制缩放、旋转和缩放
  • 可通过三维的方式展示视图的层次结构,并可对视图的选择进行同步更新显示: 这是 Xcode 没有的特性,可以查看某个视图组件在层次结构中的位置
  • 支持 iPad 和 iPhone
  • 可扩展: 基础的实现支持UIView 但很容易对其进行扩展以支持任意类型的 UI 框架,如 CoreAnimation 或者 SpriteKit

要求

  • iOS 11.0+
  • Xcode 10.1+ (framework built for Swift 4.2)

安装

CocoaPods

在你的 Podfile 添加如下代码:

pod 'InAppViewDebugger', '~> 1.0.0'

Carthage

在你的 Cartfile 添加如下代码:

github "indragiek/InAppViewDebugger" "1.0.0"

使用

Swift

import InAppViewDebugger

@IBAction func showViewDebugger(sender: AnyObject) {
  InAppViewDebugger.present()
}

Objective-C

@import InAppViewDebugger;

// alternative import (they're the same): 
// #import <InAppViewDebugger/InAppViewDebugger-Swift.h>

- (IBAction)showViewDebugger:(id)sender {
  [InAppViewDebugger present];
}

lldb

(lldb) expr -lswift -- import InAppViewDebugger
(lldb) expr -lswift -- InAppViewDebugger.present()

present 函数显示你应用关键窗体的 UI 层次结构。

Controls

元素聚焦

调整不同层级的距离

调整可视化层级

显示和隐藏标题

显示和隐藏边框

定制

你可以对快照视图和层次视图的颜色、字体和其他属性进行定制,只需创建一个自定义的
[Configuration](https://github.com/indragiek/InAppViewDebugger/blob/master/blob/master/InAppViewDebugger/Configuration.swift)即可。配置信息传递给函数
InAppViewDebugger.presentForWindow(:configuration:completion:).

扩展其他 UI 框架

当前实现只支持 UIView 层次结构,但很容易可以扩展对其他 UI 框架的支持。只要遵循
Element
协议即可。请看
ViewElement
来了解一个具体的实现示例。