InAppViewDebuggerUIView 调试工具
InAppViewDebugger 是一个 UIView 调试器(类似 Reveal 或 Xcode),可以嵌入到应用中实现设备的调试功能。
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
元素聚焦
调整不同层级的距离
调整可视化层级
显示和隐藏标题
显示和隐藏边框
定制
你可以对快照视图和层次视图的颜色、字体和其他属性进行定制,只需创建一个自定义的 Configuration
即可。配置信息传递给函数 InAppViewDebugger.presentForWindow(:configuration:completion:)
.
扩展其他 UI 框架
当前实现只支持 UIView
层次结构,但很容易可以扩展对其他 UI 框架的支持。只要遵循 Element
协议即可。请看 ViewElement
来了解一个具体的实现示例。
评论