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,下载下来用真机跑一下按按就知道什么感觉啦。

iOS中震动反馈Haptic Feedback使用_第1张图片
demo.png

你可能感兴趣的:(iOS中震动反馈Haptic Feedback使用)