是否可以在 iPhone 上记录一组触摸事件然后播放?我搜索了很多,但找不到任何答案。如果可能的话,任何人都可以用一个例子来解释。我不是在寻找测试目的。在我的应用程序中,我不想创建动画,而只想记录一组事件,然后想要回放以向用户解释应用程序流程。
问候。
是否可以在 iPhone 上记录一组触摸事件然后播放?我搜索了很多,但找不到任何答案。如果可能的话,任何人都可以用一个例子来解释。我不是在寻找测试目的。在我的应用程序中,我不想创建动画,而只想记录一组事件,然后想要回放以向用户解释应用程序流程。
问候。
录音很简单。查看UIResponder上的各种“响应触摸事件”和“响应运动事件”方法。只需创建您自己的 UIView 子类(因为继承自)并保留传递给相关方法的事件的副本。UIView
UIResponder
播放有点复杂;没有办法制作UITouch
或UIEvent
对象(因此您不能制作假事件并将其传递给-[UIApplication sendEvent:]
)。但是,没有什么能阻止您手动解析 Event 对象数组并自行处理它(除了它是某种丑陋的代码)。
没有内置的宏功能,但您当然可以将该功能构建到您的应用程序中。不过,您需要做的不仅仅是回放事件。触摸通常不可见,但如果您试图向用户解释如何使用您的应用程序,您可能希望对触发不同响应的触摸有某种视觉表示,类似于 iOS 模拟器使用的方式当您按住选项键时,白点表示多次触摸。
假设您可以解决该问题,您会想到两种轻松记录用户操作的策略:
使用撤消管理器: NSUndoManager 已经设置为“记录”可撤消的事件。如果您花一些时间使应用程序中的所有内容都可撤消,您可以(也许)执行一组操作,将它们全部撤消以将它们移至重做堆栈,然后将重做堆栈中的事件作为脚本保存。
使用可访问性:只要触摸用户界面元素,可访问性框架就会发送通知。您的应用可以使用这些通知来创建播放脚本。不过,您仍然需要编写代码来回放脚本中的事件。
您可以使用 AirServer 镜像您的应用程序并使用任何屏幕捕获软件来制作视频。