iOS中震动反馈Haptic Feedback使用

前几天元旦的时候,用iMessage发“新年快乐”的时候,苹果给出了放烟花的彩蛋。

happyNewYear.png

这个倒是还不是很令人吃惊,真正令人吃惊的是手机的震动真的跟放烟花的节奏一模一样,苹果的震动处理真的是吓人。包括Macbook上的触摸板震动,以前我还真的以为是可以按下去的,直到有一天电脑死机了才知道是震动反馈。。

正好趁着这个机会把苹果从iOS9就开始使用的震动反馈拿出来看看。

其实在发布iOS9中的 force touch就是用了这个,只不过当时苹果并没有开放api给开发者使用。

这不,iOS 10发布之后,苹果果然就把这个接口开放了出来。

UIFeedbackGenerator

UIFeedbackGenerator是整个震动反馈的核心,它只有一个方法


- (void)prepare;

他的作用就是让响应立刻发生,如果不调用这个方法的话,可能会发生延时,而且多次调用这个方法也没问题,他是安全的。

UINotificationFeedbackGenerator

UINotificationFeedbackGenerator才是真正需要我们写的东西,其实他里边的东西也不多,只有三个属性

  • UINotificationFeedbackTypeSuccess

  • UINotificationFeedbackTypeWarning

  • UINotificationFeedbackTypeError

分别在成功、警告和错误时调用。

具体的调用方法就是这样:


+ (void)executeSuccessFeedback

{

 UINotificationFeedbackGenerator *generator = [[UINotificationFeedbackGenerator alloc] init];

 [generator notificationOccurred:UINotificationFeedbackTypeSuccess];

}

UIImpactFeedbackGenerator

UIImpactFeedbackGenerator是另外一个类型的震动,同样也拥有三种形式

  • UIImpactFeedbackStyleLight

  • UIImpactFeedbackStyleMedium

  • UIImpactFeedbackStyleHeavy

分别是轻度、中度和重度。

调用的方法也很简单:


+ (void)excuteLightFeedback

{

 UIImpactFeedbackGenerator *generator = [[UIImpactFeedbackGenerator alloc] initWithStyle: UIImpactFeedbackStyleLight];

 [generator prepare];

 [generator impactOccurred];

}

UISelectionFeedbackGenerator

UISelectionFeedbackGenerator中只有一个类型,是用来模拟选择滚轮一类控件时的震动,比如计时器中的picker滚动时就有这个效果。


+ (void)excuteSelectionFeedback

{

 UISelectionFeedbackGenerator *generator = [[UISelectionFeedbackGenerator alloc] init];

 [generator selectionChanged];

}

Demo

最后放Demo,下载下来用真机跑一下按按就知道什么感觉啦。

demo.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 黄慧心阅读 1,459评论 0 2
  • 作者:何冠萱 能把原创者有意境的诗文改成毒鸡汤的人,――其人生就是水中月。 不值得任何人尊重! 原创作品,诗品等于...
    何冠萱阅读 3,262评论 1 10
  • 说不清的就像那风吹落的一阵阵落叶,直至落地依然不肯停息 不停地刮擦地面似是意欲留痕,时而与我方向一致,时而又与我背...
    病老阅读 1,742评论 2 8

友情链接更多精彩内容