iOS中的宏录制

3

在iPhone上记录一组触摸事件然后进行回放,这是否可能?我已经搜索了很多但是没有找到答案。如果可能的话,有人能举个例子说明吗?

我不是为了测试目的而寻找。在我的应用程序中,我只想记录一组事件,然后想要回放来向用户解释应用程序的流程,而不是创建动画。

谢谢。


可能是Automated testing for iPhone的重复问题。 - matt
@matt:不是重复问题。如果你读了问题,Mosib 正试图使用事件展示用户他的应用程序的工作方式,就像教程一样。 - zadr
3个回答

2

记录非常简单。查看 UIResponder 上各种“响应触摸事件”和“响应运动事件”方法。只需创建自己的 UIView 子类(由于 UIView 继承自 UIResponder),并在相关方法中保留传递的事件副本。

回放有点复杂;没有办法创建 UITouchUIEvent 对象(因此无法创建假事件并将其传递给 -[UIApplication sendEvent:])。但是,您可以手动解析事件对象数组并自行处理它(除了代码看起来不太美观之外,没有任何阻止你的东西)。


2

虽然没有内置的宏功能,但你肯定可以将该功能集成到你的应用程序中。不过,你需要做更多的工作,而不仅仅是回放事件。触摸通常是不可见的,但如果你试图向用户解释如何使用你的应用程序,你可能希望有一些可视化表示触摸触发不同响应的方式,类似于iOS模拟器使用白点来表示按住选项键时的多个触摸。

假设你可以解决这个问题,有两种容易记录用户操作的策略:

  • 使用撤销管理器: NSUndoManager已经设置好了“记录”可撤销事件。如果你花费一些时间使应用程序中的所有内容都可以撤销,你就可以执行一组操作,将它们全部撤消以将它们移动到重做堆栈中,然后将重做堆栈中的事件保存为你的脚本。

  • 使用辅助功能: 辅助功能框架在用户界面元素被触摸时发送通知。你的应用程序可以使用这些通知来创建一个播放脚本。不过,你仍然需要编写代码来回放脚本中的事件。


0
您可以使用AirServer镜像您的应用程序,并使用任何屏幕捕获软件制作视频。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接