ShowTime 2.5.3

ShowTime 2.5.3

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2021年12月
SPM支持SPM

Kane Cheshire维护。



ShowTime 2.5.3

Version License Platform Awesome

这就是ShowTime🎥

ShowTime是最简单、最好的方式来展示你屏幕上的所有点击和手势。完美用于演示、演讲或视频。

只需要一个文件(或pod安装)就可以添加你的演示所需的额外品质。ShowTime还能显示你施加的力度,并且可以配置显示执行点击的实际数量。Pencil事件可配置并在默认情况下禁用。

ShowTime在您的应用运行时即可开始工作,无需设置,但是如果您不喜欢默认设置,它也可以进行高度自定义。

ShowTime与单窗口和多窗口设置以及iOS小部件一起工作,适用于任何Swift或Objective-C项目。

查看如何工作

安装ShowTime只需不到一分钟,当您通过QuickTime或AirPlay共享或录制屏幕时请考虑使用它。

默认情况下,视觉触摸的大小是44pt;这反映了苹果对iOS上按钮最小点击大小的指南。当然,您可以更改这个设置。

在演示时显示手势可以给您的观众提供更清晰的上下文,了解您设备上发生的事情。为您的下一个演示尝试ShowTime,它设置起来非常简单易用!

新增功能:将ShowTime作为调试模式下的Pod添加到您的应用中,将在测试运行时显示振击和手势!

ShowTime

安装

Swift 包管理器

  • 步骤 1:在 Xcode 11 及以上版本中,将 https://github.com/KaneCheshire/ShowTime.git 添加到 Swift 包依赖中,更多信息请参阅此处
  • 步骤 2:没有步骤 2,ShowTime 在您启动应用程序时即可使用,但您如果愿意的话可以配置它!

Cocoapods

  • 步骤 1:将 pod 'ShowTime' 添加到您的 Podfile 中,并在终端中运行 pod update
  • 步骤 2:没有步骤 2,ShowTime 在您启动应用程序时即可使用,但您如果愿意的话可以配置它!

手动

  • 步骤 1:将 ShowTime.swift 文件拖入您的项目中或将其内容复制到您希望的任何一个位置。

使用方法

ShowTime 即装即用(您甚至不需要在任何地方导入框架),但您可以根据需要自定义它来开启或关闭功能,改变点击的显示颜色,甚至选择是否显示多点击时的点击次数。

许多可调节选项可以帮助 ShowTime 在演示过程中与您的应用程序特色相匹配。

以下是一些可选项:

// Defines when and if ShowTime is enabled.
//
// Possible values are:
// - .always
// - .never
// - .debugOnly
//
// `.always` by default,
ShowTime.enabled: ShowTime.Enabled


// The fill (background) color of a visual touch.
// When set to `.auto`, ShowTime automatically uses the stroke color with a 50% alpha.
// This makes it super quick to change ShowTime to fit in better with your brand.
// `.auto` by default.
ShowTime.fillColor: UIColor

// The colour of the stroke (outline) of a visual touch.
// "Twitter blue" by default.
ShowTime.strokeColor: UIColor

// The width (thickness) of the stroke around a visual touch.
// 3pt by default.
ShowTime.strokeWidth: CGFloat

// The size of a visual touch.
// 44x44pt by default.
ShowTime.size: CGSize

// The style of animation  to use when a visual touch disappears.
//
// Possible values are:
// - .standard (Slightly scaled down and faded out)
// - .scaleDown (Completely scaled down with no fade)
// - .scaleUp (Scaled up and faded out)
// - .custom (Provide your own custom animation block)
//
// `.standard` by default.
ShowTime.disappearAnimation: ShowTime.Animation

// The delay, in seconds, before the visual touch disappears after a touch ends.
// `0.2` by default.
ShowTime.disappearDelay: TimeInterval

// Whether visual touches should indicate a multiple tap (i.e. show a number 2 for a double tap).
// `false` by default.
ShowTime.shouldShowMultipleTapCount: Bool

// The colour of the text to use when showing multiple tap counts.
// `.black` by default.
ShowTime.multipleTapCountTextColor: UIColor

// The font of the text to use when showing multiple tap counts.
// `.systemFont(ofSize: 17, weight: .bold)` by default.
ShowTime.multipleTapCountTextFont: UIFont

// Whether visual touches should visually show how much force is applied.
// `true` by default (show off that amazing tech!).
ShowTime.shouldShowForce: Bool

// Whether touch events from Apple Pencil are ignored.
// `true` by default.
ShowTime.shouldIgnoreApplePencilEvents: Bool

它的工作原理

ShowTime 是一个适用于展示您的点击和手势,同时展示您在演示和视频中辛勤工作的 通用 解决方案。ShowTime 适用于既定的 单窗口应用程序,也适用于 多窗口应用程序

为了实现这一功能,ShowTime使用了方法交换(method swizzling)技术。由于方法交换仅在Objective-C运行时才可行,因此只能用于从NSObject派生的Swift类型。这没问题,因为UIWindow确实继承了NSObject,因此ShowTime可以交换sendEvent(_:)方法。

交换只是一个友好的术语,用于替换方法的默认实现并替换为自己的实现(该实现会调用默认实现,类似于调用类的super实现),这样你就可以在不创建子类的情况下拥有对该方法的更多控制权。这种方法的优点和缺点在于,所有创建的对象都将使用新的实现,因此交换方法应该谨慎使用,特别是在生产代码中。

ShowTime在UIWindow上交换了sendEvent(_:)方法,拦截了事件,然后让UIWindow继续发送事件。通过拦截该事件并从中提取出UITouch对象,ShowTime将在接收sendEvent(_:)的任何窗口上可视化显示这些触摸点。

有用信息

为什么我开始使用时不需要导入ShowTime?

ShowTime会自动交换函数,无需使用import ShowTime导入框架,因此安装cocoapod后,ShowTime会自动启用。你只需要导入框架的情况是你想尝试配置。

我可以在生产环境中使用这个吗?

是的,我从未见过任何奇怪的崩溃,但它从未进行过压力测试,所以进行压力测试是有风险的。

我为什么要显示多次点击的数量?

观看你应用演示的人并不知道你手指的具体操作,因此显示你点击屏幕特定部分的具体次数,真的有助于人们理解你执行的手势。

如果你在观察别人的手,双击是有意义的,但如果你在屏幕上观察,这往往很容易错过。通过设置ShowTime.shouldShowMultipleTapCounttrue来显示多次点击的数量,在点击本身内显示一个数字,清楚地向你的观众演示你刚刚在同一个地方连续点击了两次(或更多)。

为什么苹果笔事件默认不显示?

我猜大多数情况下,如果你在使用苹果笔进行演示,那么你是在展示绘画或其他类似内容,所以你不需要在那种位置显示触摸。如果你需要显示苹果笔交互的触摸事件,可以轻松地禁用这种行为。

我可以在每屏设置不同的点击颜色而不是为每个应用设置吗?

这是可能的,你只需在要更改点击颜色屏幕的viewDidLoadviewDidAppear(_:)中设置颜色即可。这增加了一点点复杂性,但肯定可以实现。

作者

Kane Cheshire, @KaneCheshire

许可

ShowTime可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。