iOS10为用户添加触摸反馈

简介: iOS10为用户添加触摸反馈

在iOS10中,UIKit框架中新增加了3个类,UIImpactFeedbackGenerator类、UINotificationFeedbackGenerator类与UISelectionFeedbackGenerator类。开发者使用这3个类可以进一步为用户的某些交互操作增强反馈。举例而言,当用户点击了某个按钮,开发者可以为其提供一个适当的震动效果作为触觉上的反馈。示例代码如下:


//这个方法通过传入参数来确定触发什么样的用户触觉反馈

-(void)feedbackStart:(int)style{

   switch (style) {

       case 1:

       {

           UIImpactFeedbackGenerator * imp = [[UIImpactFeedbackGenerator alloc]initWithStyle:UIImpactFeedbackStyleHeavy];

           [imp impactOccurred];

       }

           break;

       case 2:

       {

           UIImpactFeedbackGenerator * imp = [[UIImpactFeedbackGenerator alloc]initWithStyle:UIImpactFeedbackStyleMedium];

           [imp impactOccurred];

       }

           break;

       case 3:

       {

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

           [imp impactOccurred];

       }

           break;

       case 4:

       {

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

           [imp notificationOccurred:UINotificationFeedbackTypeError];

       }

           break;

       case 5:

       {

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

           [imp notificationOccurred:UINotificationFeedbackTypeSuccess];

       }

           break;

       case 6:

       {

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

           [imp notificationOccurred:UINotificationFeedbackTypeWarning];

       }

           break;

       case 7:

       {

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

           [imp selectionChanged];

       }

           break;

       default:

           break;

   }

}

UIImpactFeedbackGenerator类是标准的触觉反馈类,其调用impactOccurred方法来触发反馈,其实例在创建时,可以通过枚举来创建强度不同的反馈:


typedef NS_ENUM(NSInteger, UIImpactFeedbackStyle) {

   //轻度的反馈

   UIImpactFeedbackStyleLight,

   //中等强度的反馈

   UIImpactFeedbackStyleMedium,

   //高强度的反馈

   UIImpactFeedbackStyleHeavy

};

UINotificationFeedbackGenerator类是专用于通知类交互的触觉反馈,其在进行反馈时也有3中枚举类型可选,解析如下:


typedef NS_ENUM(NSInteger, UINotificationFeedbackType) {

   //成功类通知的反馈

   UINotificationFeedbackTypeSuccess,

   //警告类通知的反馈

   UINotificationFeedbackTypeWarning,

   //错误类通知的反馈

   UINotificationFeedbackTypeError

};

UISelectionFeedbackGenerator类创建的反馈应用与某些选择器控件,例如用户在一个单选列表中切换选项、切换按钮的开关状态时,可以使用其来进行触觉反馈。


   需要注意:不是所有的场景都需要反馈,频繁的触觉反馈会给用户代码困扰,开发者在使用这些类时要适当。


   有时候,频繁的触觉反馈可能会引起反馈延时,这将大大降低用户的体验,官方建议开发者在合适的时机创建反馈,然后调用prepare方法来使反馈准备完成,之后在需要的时机再进行反馈的触发。需要注意,UIImpactFeedbackGenerator类、UINotificationFeedbackGenerator类与UISelectionFeedbackGenerator类都有一个相同的父类UIFeedbackGenerator类,这个类中定义了prepare方法,当调用这个方法时,系统会调起相关服务来进行触觉触觉反馈的准备工作。

目录
相关文章
|
iOS开发
(六)IOS手势和触摸的用法
(六)IOS手势和触摸的用法
225 0
|
iOS开发
iOS - 3DTouch 3D 触摸
1、3DTouch 简介 3DTouch 是 iOS9 + 系统下,在 iPhone6s(iPhone6s Plus)+ 手机上才能够使用的功能。 1.1 3DTouch 基本类型 1、主屏幕快速选项(Home Screen Quick Action) 通过主屏幕的应用图标,通过 3D 手势呼出一个菜单,在主屏幕上的应用 Icon 处,直接进入应用的相应功能模块。
949 0