震动反馈(Tapic-Engine)的使用

UIFeedbackGenerator反馈发生器

这个类基本上就是震动反馈(Tapic-Engine)的使用.

基本上都知道iPhone-6s以及以后的iOS版本苹果搭载了Tapic-Engine.就是俗称的点哪里哪里"响应",然后震动的一个线性马达.那么,我们能否让他震动呢.

在iOS10以上的网易新闻客户端里面大家可以看到这个Tapic-Engine在下拉刷新中的使用.下拉到松手就能刷新的那个状态就可以触发.

#import

咱们可以在UIKit框架在的Impact(冲击)feedback(反馈)generator(发生器).里头看到.

震动反馈(Tapic-Engine)的使用_第1张图片

大致结构就和上图一样.一般分为三种情况

按压的时候使用的反馈UIImpactFeedbackGenerator

使用方法以及力度.

/// Style即为传入的力度
UIImpactFeedbackGenerator *impactFeedbackGenerator = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleHeavy];
[impactFeedbackGenerator impactOccurred];

力度Heavy > Medium > Light

成功、警告、错误时使用的反馈UINotificationFeedbackGenerator

使用方法

UINotificationFeedbackGenerator *notificationFeedbackGenerator = [[UINotificationFeedbackGenerator alloc] init];
[notificationFeedbackGenerator notificationOccurred:UINotificationFeedbackTypeSuccess];

** notificationOccurred:传入不同的类型.**

选中和取消选中时使用的反馈UISelectionFeedbackGenerator

UISelectionFeedbackGenerator *selectionFeedbackGenerator = [[UISelectionFeedbackGenerator alloc] init];
[selectionFeedbackGenerator selectionChanged];

由于这个选中/取消选中没有力度…所以直接调用- (void)selectionChanged;即可

适配

由于这个Tapic-Engine仅仅只在iOS10以上以及6s及以上能用.其余的版本可以不使用长短震动.也可以使用AVFoundation框架下的震动:

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

你可能感兴趣的:(交互,UIKit,UIKit笔记)