iOS基础知识— UIFeedbackGenerator

我的新iPhone X触手可及的令人惊讶的新功能之一:振动。 因为我的旧手机是iPhone6s,所以我没有经历过Haptic Engine的新更改。 自从成为iOS开发人员以来,我想了解有关iOS设备的所有知识,不仅要了解软件,还要了解硬件组件,因为实际的物理特性决定了它们自己的内部状态和功能。

当苹果推出Haptic Engine时,新的API也随之出现:UIFeedbackGenerator。 明确命名,它只是旨在为用户提供诸如振动之类的触觉反馈。 该反馈生成器已经内置了拾取器,开关和滑块,可以在屏幕上点击或选择时为用户提供更好的体验。 此外,Apple在文档中还提到开发人员也可以将其用于自己的自定义视图或控件。

您可以实现三种类型的反馈UIImpactFeedbackGeneratorUISelectionFeedbackGeneratorUINotificationFeedbackGenerator 。 每一种都会给用户带来不同类型的振动,以通知设备正在与其交互。 如果您在下面阅读更多内容,然后下载并执行演示应用程序,则将能够更加清楚地了解。 这些反馈属性非常容易实现!


如何实施
首先,简单易行地说,要实现此过程需要三个步骤。
1.声明
2.准备
3.火
通过阅读下文,您将能够更好地了解每个反馈生成器以及如何详细实现它们。


UIImpactFeedbackGenerator
因为我一直想使事情变得简单和简单,所以当我的手指点击实现的视图时,此生成器会给我带来振动的影响。 您可以将影响设置为轻,中或重,并且在Swift中编写代码非常容易。 请看下面的代码片段,从顶部开始的前三个按钮的标记值为整数,并且目标操作相同。 在“ handleImpactFeedbackGenerator”函数中,将使用不同的影响反馈来初始化impackFeedbackGenerator。 上面提到,它非常易于使用。 按下每个按钮时,不同的反馈振动将使您知道您刚刚轻按了按钮。


UISelectionFeedbackGenerator
起初我很困惑这个发生器是什么,因为它只会产生轻微的振动反馈。 似乎与样式为light的UIImpactFeedbackGenerator并没有太大不同。 确实如此,但是根据Apple的官方文档,当有一系列选项且用户必须选择一个时,应使用此生成器。 在演示应用程序中,我创建了一个UITableView来列出从1月到12月的列表,以供用户选择自己的生日(点击文本字段时将弹出表格视图)。 当您选择列表中可用的选项之一时,生成器会发出轻微的振动,让您知道该项目已成功选择。


UINotificationFeedbackGenerator
老实说,我不知道这是什么,为什么我需要它。 通过彻底阅读文档并构建演示应用程序,它变得更加清晰。 首先,我将告诉您该反馈生成器在iPhone中的使用位置。 当您通过Airdrop将图片或视频发送给您的朋友并且任务成功完成时,手机会剧烈震动。 我立刻以为是UIImactFeedbackGenerator。 想了又长时间,我问自己,发送照片的任务是否失败。 由于网络连接不良或某些其他原因,空投有时可能会失败。

Apple设计了此生成器,以提供反馈以通知用户任务是否已成功完成。 您可以实现三种类型的通知反馈:成功,警告和错误。 每个都提供不同的振动反馈。 按下最后三个按钮。 您会感觉到差异。 前两种类型,成功和警告,非常相似,但我猜想振动模式有细微的差别。

正如我说的更容易实现。 只需声明,准备并解雇。 请参考下面的代码片段。

取消初始化UIFeedbackGenerator
如果您需要摆脱内存中的反馈生成器,则只需将nil分配给实例即可。

我只是想向读者介绍UIFeedbackGenerator,如果您有任何疑问或评论,请发表评论或给我发送电子邮件。 您也可以从我的Github下载此演示应用程序。 谢谢。

演示应用程序链接:https://github.com/jjeui0308/Introduction_UIFeedbackGenerator
电子邮件:
jjeui0308@gmail.com