InAppViewDebuggerUIView 调试工具

联合创作 · 2023-10-01 21:38

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

InAppViewDebugger

InAppViewDebugger 是可以实现了视图调试器的库,提供三维视图快照和视图的层次图。类似 Reveal 和 Xcode 的视图调试器 。关键的区别在于其可以嵌入到应用中,并可直接在设备上调试 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

元素聚焦

Focusing on an Element

调整不同层级的距离

Adjusting Distance Between Levels

调整可视化层级

Adjusting Visible Levels

显示和隐藏标题

Showing/Hiding Headers

显示和隐藏边框

Showing/Hiding Borders

定制

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

扩展其他 UI 框架

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

浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报