HapticGenerator
iOS 中轻松的触觉效果生成。
安装
在 podfile 中添加以下内容:
pod 'HapticGenerator'
然后,在终端中运行 pod update
。
或者,您可以直接将 HapticGenerator.swift
手动添加到您的项目中。
从 HapticGenerator 2 迁移到 HapticGenerator 3
HapticGenerator 3.0.0 显著简化了命名,但将是一个重大更改,您需要更新您的应用程序。
在 HapticGenerator 3 中,生成触觉的代码行已经简化
Haptic.selection.generate()
Haptic.selection.generate(prepareForReuse: true)
与 HapticGenerator 2 相比,后者在没有任何真正原因的情况下过于冗长
HapticGenerator.selection.generateHaptic()
HapticGenerator.selection.generateHaptic(prepareForReuse: true)
用法
HapticGenerator 现在自带方便的常量,生成触觉效果变得更加简单
Haptic.selection.generate()
或者,如果您想要自己创建生成器,可以创建一个新的生成器,如下所示:
let selection = Haptic(.selection)
let lightImpact = Haptic(.impact(.light))
let warning = Haptic(.notification(.warning))
然后按照这种方式生成触觉效果
selection.generate()
可选地,您可以指示系统为(重新)使用准备引擎。 HapticGenerator 有两种方式来做这件事:一种是在您通过设置 prepareForReuse
为 true
生成触觉效果后
Haptic.selection.generate(prepareForReuse: true)
如果您提前知道在生成触觉效果之前您将很快使用它(例如在屏幕出现后),则可以手动进行 prepareForUse
Haptic.selection.prepareForUse()
注意:触觉效果应在主线程上生成和准备用于重用。
为什么使用这个?
Apple的UIFeedbackGenerator
子类不难用,但它们相当混乱。
HapticGenerator将它们整理起来,使得在iOS上创建不同类型的触觉效果变得简单且连贯。
看看苹果方式和HapticGenerator
方式创建和使用的区别:
// Apple's way of using a selection feedback generator:
let selection = UISelectionFeedbackGenerator()
// Generate the haptic:
selection.selectionChanged()
// Apple's way of using an impact feedback generator:
let lightImpact = UIImpactFeedbackGenerator(style: .light)
lightImpact.impactOccurred()
// Apple's way of using a notification feedback generator:
let success = UINotificationFeedbackGenerator()
success.notificationOccurred(.success)
与HapticGenerator
方式相比
Haptic.selection.generate()
Haptic.lightImpact.generate()
Haptic.success.generate()
HapticGenerator的代码量显著更少且更易读。
此外,如果您支持iOS 10之前的任何iOS版本,您就不需要在代码中有一长串难看的可用性检查,因为它都包含在 HapticGenerator 中。